Hướng dẫn how many ways we can create table in mysql? - có bao nhiêu cách chúng ta có thể tạo bảng trong mysql?

13.1.20 & nbsp; Tạo câu lệnh bảng

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
    [partition_options]

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    [partition_options]
    [IGNORE | REPLACE]
    [AS] query_expression

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    { LIKE old_tbl_name | (LIKE old_tbl_name) }

create_definition: {
    col_name column_definition
  | {INDEX | KEY} [index_name] [index_type] (key_part,...)
      [index_option] ...
  | {FULLTEXT | SPATIAL} [INDEX | KEY] [index_name] (key_part,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] PRIMARY KEY
      [index_type] (key_part,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] UNIQUE [INDEX | KEY]
      [index_name] [index_type] (key_part,...)
      [index_option] ...
  | [CONSTRAINT [symbol]] FOREIGN KEY
      [index_name] (col_name,...)
      reference_definition
  | check_constraint_definition
}

column_definition: {
    data_type [NOT NULL | NULL] [DEFAULT {literal | (expr)} ]
      [VISIBLE | INVISIBLE]
      [AUTO_INCREMENT] [UNIQUE [KEY]] [[PRIMARY] KEY]
      [COMMENT 'string']
      [COLLATE collation_name]
      [COLUMN_FORMAT {FIXED | DYNAMIC | DEFAULT}]
      [ENGINE_ATTRIBUTE [=] 'string']
      [SECONDARY_ENGINE_ATTRIBUTE [=] 'string']
      [STORAGE {DISK | MEMORY}]
      [reference_definition]
      [check_constraint_definition]
  | data_type
      [COLLATE collation_name]
      [GENERATED ALWAYS] AS (expr)
      [VIRTUAL | STORED] [NOT NULL | NULL]
      [VISIBLE | INVISIBLE]
      [UNIQUE [KEY]] [[PRIMARY] KEY]
      [COMMENT 'string']
      [reference_definition]
      [check_constraint_definition]
}

data_type:
    (see Chapter 11, Data Types)

key_part: {col_name [(length)] | (expr)} [ASC | DESC]

index_type:
    USING {BTREE | HASH}

index_option: {
    KEY_BLOCK_SIZE [=] value
  | index_type
  | WITH PARSER parser_name
  | COMMENT 'string'
  | {VISIBLE | INVISIBLE}
  |ENGINE_ATTRIBUTE [=] 'string'
  |SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
}

check_constraint_definition:
    [CONSTRAINT [symbol]] CHECK (expr) [[NOT] ENFORCED]

reference_definition:
    REFERENCES tbl_name (key_part,...)
      [MATCH FULL | MATCH PARTIAL | MATCH SIMPLE]
      [ON DELETE reference_option]
      [ON UPDATE reference_option]

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT

table_options:
    table_option [[,] table_option] ...

table_option: {
    AUTOEXTEND_SIZE [=] value
  | AUTO_INCREMENT [=] value
  | AVG_ROW_LENGTH [=] value
  | [DEFAULT] CHARACTER SET [=] charset_name
  | CHECKSUM [=] {0 | 1}
  | [DEFAULT] COLLATE [=] collation_name
  | COMMENT [=] 'string'
  | COMPRESSION [=] {'ZLIB' | 'LZ4' | 'NONE'}
  | CONNECTION [=] 'connect_string'
  | {DATA | INDEX} DIRECTORY [=] 'absolute path to directory'
  | DELAY_KEY_WRITE [=] {0 | 1}
  | ENCRYPTION [=] {'Y' | 'N'}
  | ENGINE [=] engine_name
  | ENGINE_ATTRIBUTE [=] 'string'
  | INSERT_METHOD [=] { NO | FIRST | LAST }
  | KEY_BLOCK_SIZE [=] value
  | MAX_ROWS [=] value
  | MIN_ROWS [=] value
  | PACK_KEYS [=] {0 | 1 | DEFAULT}
  | PASSWORD [=] 'string'
  | ROW_FORMAT [=] {DEFAULT | DYNAMIC | FIXED | COMPRESSED | REDUNDANT | COMPACT}
  | START TRANSACTION 
  | SECONDARY_ENGINE_ATTRIBUTE [=] 'string'
  | STATS_AUTO_RECALC [=] {DEFAULT | 0 | 1}
  | STATS_PERSISTENT [=] {DEFAULT | 0 | 1}
  | STATS_SAMPLE_PAGES [=] value
  | TABLESPACE tablespace_name [STORAGE {DISK | MEMORY}]
  | UNION [=] (tbl_name[,tbl_name]...)
}

partition_options:
    PARTITION BY
        { [LINEAR] HASH(expr)
        | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)
        | RANGE{(expr) | COLUMNS(column_list)}
        | LIST{(expr) | COLUMNS(column_list)} }
    [PARTITIONS num]
    [SUBPARTITION BY
        { [LINEAR] HASH(expr)
        | [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list) }
      [SUBPARTITIONS num]
    ]
    [(partition_definition [, partition_definition] ...)]

partition_definition:
    PARTITION partition_name
        [VALUES
            {LESS THAN {(expr | value_list) | MAXVALUE}
            |
            IN (value_list)}]
        [[STORAGE] ENGINE [=] engine_name]
        [COMMENT [=] 'string' ]
        [DATA DIRECTORY [=] 'data_dir']
        [INDEX DIRECTORY [=] 'index_dir']
        [MAX_ROWS [=] max_number_of_rows]
        [MIN_ROWS [=] min_number_of_rows]
        [TABLESPACE [=] tablespace_name]
        [(subpartition_definition [, subpartition_definition] ...)]

subpartition_definition:
    SUBPARTITION logical_name
        [[STORAGE] ENGINE [=] engine_name]
        [COMMENT [=] 'string' ]
        [DATA DIRECTORY [=] 'data_dir']
        [INDEX DIRECTORY [=] 'index_dir']
        [MAX_ROWS [=] max_number_of_rows]
        [MIN_ROWS [=] min_number_of_rows]
        [TABLESPACE [=] tablespace_name]

query_expression:
    SELECT ...   (Some valid select or union statement)

CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 tạo một bảng với tên đã cho. Bạn phải có đặc quyền
CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
6 cho bảng.

Theo mặc định, các bảng được tạo trong cơ sở dữ liệu mặc định, sử dụng công cụ lưu trữ

CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7. Xảy ra lỗi nếu bảng tồn tại, nếu không có cơ sở dữ liệu mặc định hoặc nếu cơ sở dữ liệu không tồn tại.

MySQL không có giới hạn về số lượng bảng. Hệ thống tệp cơ bản có thể có giới hạn về số lượng tệp đại diện cho các bảng. Động cơ lưu trữ cá nhân có thể áp đặt các ràng buộc cụ thể của động cơ.

CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7 cho phép lên tới 4 tỷ bảng.

Để biết thông tin về biểu diễn vật lý của bảng, xem Phần & NBSP; 13.1.20.1, các tệp được tạo bởi Tạo bảng.

Có một số khía cạnh của câu lệnh

CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9, được mô tả theo các chủ đề sau trong phần này:

  • Tên bảng

  • Bảng tạm thời

  • Nhân bản bảng và sao chép

  • Kiểu dữ liệu và thuộc tính cột

  • Chỉ mục, khóa nước ngoài và các ràng buộc kiểm tra

  • Tùy chọn bảng

  • Phân vùng bảng

Tên bảng

  • Bảng tạm thời

    Nhân bản bảng và sao chép

    Kiểu dữ liệu và thuộc tính cột

  • Chỉ mục, khóa nước ngoài và các ràng buộc kiểm tra

    Tùy chọn bảng

Bảng tạm thời

Nhân bản bảng và sao chép

Nhân bản bảng và sao chép

  • Kiểu dữ liệu và thuộc tính cột

    Chỉ mục, khóa nước ngoài và các ràng buộc kiểm tra

    CREATE TABLE new_tbl LIKE orig_tbl;

    Tùy chọn bảng

  • Phân vùng bảng

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    0

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;

    Tên bảng có thể được chỉ định là

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    1 để tạo bảng trong một cơ sở dữ liệu cụ thể. Điều này hoạt động bất kể có cơ sở dữ liệu mặc định hay không, giả sử rằng cơ sở dữ liệu tồn tại. Nếu bạn sử dụng các định danh được trích dẫn, hãy trích dẫn cơ sở dữ liệu và tên bảng riêng biệt. Ví dụ: viết
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    2, không phải
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    3.

  • Các quy tắc cho tên bảng cho phép được đưa ra trong phần & nbsp; 9.2, tên đối tượng lược đồ.

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    4

    Tên bảng có thể được chỉ định là

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    1 để tạo bảng trong một cơ sở dữ liệu cụ thể. Điều này hoạt động bất kể có cơ sở dữ liệu mặc định hay không, giả sử rằng cơ sở dữ liệu tồn tại. Nếu bạn sử dụng các định danh được trích dẫn, hãy trích dẫn cơ sở dữ liệu và tên bảng riêng biệt. Ví dụ: viết
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    2, không phải
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    3.

Kiểu dữ liệu và thuộc tính cột

Chỉ mục, khóa nước ngoài và các ràng buộc kiểm tra

  • Tùy chọn bảng

    Phân vùng bảng

    • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
      0

    • Tên bảng có thể được chỉ định là

      CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
      1 để tạo bảng trong một cơ sở dữ liệu cụ thể. Điều này hoạt động bất kể có cơ sở dữ liệu mặc định hay không, giả sử rằng cơ sở dữ liệu tồn tại. Nếu bạn sử dụng các định danh được trích dẫn, hãy trích dẫn cơ sở dữ liệu và tên bảng riêng biệt. Ví dụ: viết
      CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
      2, không phải
      CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
      3.

      CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);

      Các quy tắc cho tên bảng cho phép được đưa ra trong phần & nbsp; 9.2, tên đối tượng lược đồ.

    • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
      4must be given. Prefix lengths are given in characters for nonbinary string types and in bytes for binary string types. That is, index entries consist of the first
      mysql> CREATE TABLE t1 (
          ->     c1 INT STORAGE DISK,
          ->     c2 INT STORAGE MEMORY
          -> ) ENGINE NDB;
      ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
      
      mysql> CREATE TABLE t1 (
          ->     c1 INT STORAGE DISK,
          ->     c2 INT STORAGE MEMORY
          -> ) TABLESPACE ts_1 ENGINE NDB;
      Query OK, 0 rows affected (1.06 sec)
      1 characters of each column value for
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      5,
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      6, and
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      2 columns, and the first
      mysql> CREATE TABLE t1 (
          ->     c1 INT STORAGE DISK,
          ->     c2 INT STORAGE MEMORY
          -> ) ENGINE NDB;
      ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
      
      mysql> CREATE TABLE t1 (
          ->     c1 INT STORAGE DISK,
          ->     c2 INT STORAGE MEMORY
          -> ) TABLESPACE ts_1 ENGINE NDB;
      Query OK, 0 rows affected (1.06 sec)
      1 bytes of each column value for
      CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
      4,
      CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
      5, and
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      1 columns. Indexing only a prefix of column values like this can make the index file much smaller. For additional information about index prefixes, see Section 13.1.15, “CREATE INDEX Statement”.

      Chỉ các công cụ lưu trữ

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      3 hỗ trợ lập chỉ mục trên các cột
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      1 và
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      2. Ví dụ:

      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));

      Nếu một tiền tố chỉ mục được chỉ định vượt quá kích thước kiểu dữ liệu cột tối đa,

      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      6 xử lý chỉ mục như sau:

      • Đối với chỉ số không liên quan, xảy ra lỗi (nếu chế độ SQL nghiêm ngặt được bật) hoặc độ dài chỉ mục bị giảm để nằm trong kích thước kiểu dữ liệu cột tối đa và cảnh báo được tạo ra (nếu chế độ SQL nghiêm ngặt không được bật).

      • Đối với một chỉ mục duy nhất, một lỗi xảy ra bất kể chế độ SQL vì việc giảm độ dài chỉ số có thể cho phép chèn các mục không liên quan không đáp ứng yêu cầu tính duy nhất được chỉ định.

    • Các cột

      SELECT * FROM tbl_name WHERE auto_col IS NULL
      4 không thể được lập chỉ mục. Bạn có thể làm việc xung quanh hạn chế này bằng cách tạo một chỉ mục trên một cột được tạo trích xuất giá trị vô hướng từ cột
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      4. Xem lập chỉ mục một cột được tạo để cung cấp chỉ mục cột JSON, để biết ví dụ chi tiết.

  • CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    9

    Nếu cả

    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 và
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    1 đều không được chỉ định, cột được xử lý như thể
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 đã được chỉ định.

    Trong MySQL 8.0, chỉ các công cụ lưu trữ

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7,
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 và
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    5 hỗ trợ các chỉ mục trên các cột có thể có giá trị
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0. Trong các trường hợp khác, bạn phải khai báo các cột được lập chỉ mục là
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    7 hoặc kết quả lỗi.

  • SELECT * FROM tbl_name WHERE auto_col IS NULL
    0

    Chỉ định giá trị mặc định cho một cột. Để biết thêm thông tin về xử lý giá trị mặc định, bao gồm trường hợp định nghĩa cột không bao gồm giá trị

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0 rõ ràng, xem Phần & NBSP; 11.6, Giá trị mặc định kiểu dữ liệu.

    Nếu chế độ

    CREATE TABLE new_tbl LIKE orig_tbl;
    00 hoặc
    CREATE TABLE new_tbl LIKE orig_tbl;
    01 SQL được bật và mặc định có giá trị ngày không chính xác theo chế độ đó,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5 sẽ tạo cảnh báo nếu chế độ SQL nghiêm ngặt không được bật và lỗi nếu chế độ nghiêm ngặt được bật. Ví dụ: với
    CREATE TABLE new_tbl LIKE orig_tbl;
    01 được bật,
    CREATE TABLE new_tbl LIKE orig_tbl;
    04 tạo ra cảnh báo.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    05,
    CREATE TABLE new_tbl LIKE orig_tbl;
    06

    Chỉ định khả năng hiển thị cột. Mặc định là

    CREATE TABLE new_tbl LIKE orig_tbl;
    05 nếu không có từ khóa nào có mặt. Một bảng phải có ít nhất một cột có thể nhìn thấy. Cố gắng làm cho tất cả các cột vô hình tạo ra một lỗi. Để biết thêm thông tin, xem Phần & NBSP; 13.1.20.10, Cột vô hình.

    Các từ khóa

    CREATE TABLE new_tbl LIKE orig_tbl;
    05 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    06 có sẵn kể từ MySQL 8.0,0.23. Trước MySQL 8.0.23, tất cả các cột đều có thể nhìn thấy.

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9

    Một cột số nguyên hoặc dấu phẩy động có thể có thuộc tính bổ sung

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9. Khi bạn chèn giá trị
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 (được đề xuất) hoặc
    CREATE TABLE new_tbl LIKE orig_tbl;
    13 vào cột
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 được lập chỉ mục, cột được đặt thành giá trị chuỗi tiếp theo. Thông thường đây là ________ 115+1, trong đó
    CREATE TABLE new_tbl LIKE orig_tbl;
    16 là giá trị lớn nhất cho cột hiện tại trong bảng. Trình tự
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 bắt đầu với
    CREATE TABLE new_tbl LIKE orig_tbl;
    18.

    Để truy xuất giá trị

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 sau khi chèn một hàng, hãy sử dụng hàm
    CREATE TABLE new_tbl LIKE orig_tbl;
    20 SQL hoặc hàm API
    CREATE TABLE new_tbl LIKE orig_tbl;
    21 C. Xem phần & nbsp; 12.16, các chức năng thông tin trực tuyến và mysql_insert_id ().

    Nếu chế độ

    CREATE TABLE new_tbl LIKE orig_tbl;
    22 SQL được bật, bạn có thể lưu trữ
    CREATE TABLE new_tbl LIKE orig_tbl;
    13 trong các cột
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 dưới dạng
    CREATE TABLE new_tbl LIKE orig_tbl;
    13 mà không tạo ra giá trị trình tự mới. Xem Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.

    Chỉ có thể có một cột

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 trên mỗi bảng, nó phải được lập chỉ mục và nó không thể có giá trị
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0. Một cột
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 chỉ hoạt động chính xác nếu nó chỉ chứa các giá trị dương. Chèn một số âm được coi là chèn một số dương rất lớn. Điều này được thực hiện để tránh các vấn đề chính xác khi các số, bọc điện từ từ tích cực đến tiêu cực và cũng để đảm bảo rằng bạn không vô tình nhận được cột
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 có chứa
    CREATE TABLE new_tbl LIKE orig_tbl;
    13.wrap over from positive to negative and also to ensure that you do not accidentally get an
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 column that contains
    CREATE TABLE new_tbl LIKE orig_tbl;
    13.

    Đối với các bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3, bạn có thể chỉ định cột thứ cấp
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 trong phím nhiều cột. Xem Phần & NBSP; 3.6.9, Sử dụng Auto_increment.

    Để làm cho MySQL tương thích với một số ứng dụng ODBC, bạn có thể tìm thấy giá trị

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 cho hàng được chèn cuối cùng với truy vấn sau:

    SELECT * FROM tbl_name WHERE auto_col IS NULL

    Phương pháp này yêu cầu biến

    CREATE TABLE new_tbl LIKE orig_tbl;
    34 không được đặt thành 0. Xem phần & nbsp; 5.1.8, các biến hệ thống máy chủ của Hồi giáo.

    Để biết thông tin về

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 và
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9, xem Phần & NBSP; 15.6.1.6, Xử lý Auto_increment trong Innodb. Để biết thông tin về bản sao
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 và MySQL, xem phần & nbsp; 17.5.1.1, sao chép và tự động_increment.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    38

    Một nhận xét cho một cột có thể được chỉ định với tùy chọn

    CREATE TABLE new_tbl LIKE orig_tbl;
    38, dài tới 1024 ký tự. Nhận xét được hiển thị bởi các câu lệnh
    CREATE TABLE new_tbl LIKE orig_tbl;
    40 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    41. Nó cũng được hiển thị trong cột
    CREATE TABLE new_tbl LIKE orig_tbl;
    42 của bảng
    CREATE TABLE new_tbl LIKE orig_tbl;
    43.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    44

    Trong cụm NDB, cũng có thể chỉ định định dạng lưu trữ dữ liệu cho các cột riêng lẻ của bảng

    CREATE TABLE new_tbl LIKE orig_tbl;
    45 bằng cách sử dụng
    CREATE TABLE new_tbl LIKE orig_tbl;
    44. Các định dạng cột cho phép là
    CREATE TABLE new_tbl LIKE orig_tbl;
    47,
    CREATE TABLE new_tbl LIKE orig_tbl;
    48 và
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0.
    CREATE TABLE new_tbl LIKE orig_tbl;
    47 được sử dụng để chỉ định lưu trữ có chiều rộng cố định,
    CREATE TABLE new_tbl LIKE orig_tbl;
    48 cho phép cột có chiều rộng thay đổi và
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0 khiến cột sử dụng lưu trữ chiều rộng hoặc chiều rộng cố định như được xác định bởi kiểu dữ liệu của cột (có thể được ghi đè bởi
    CREATE TABLE new_tbl LIKE orig_tbl;
    53. .

    Đối với các bảng

    CREATE TABLE new_tbl LIKE orig_tbl;
    45, giá trị mặc định cho
    CREATE TABLE new_tbl LIKE orig_tbl;
    44 là
    CREATE TABLE new_tbl LIKE orig_tbl;
    47.

    Trong cụm NDB, phần bù tối đa có thể cho một cột được xác định với

    CREATE TABLE new_tbl LIKE orig_tbl;
    57 là 8188 byte. Để biết thêm thông tin và cách giải quyết có thể, xem Phần & NBSP; 23.2.7.5, Giới hạn liên quan đến các đối tượng cơ sở dữ liệu trong cụm NDB.

    CREATE TABLE new_tbl LIKE orig_tbl;
    44 hiện không có tác dụng đối với các cột của các bảng sử dụng các công cụ lưu trữ khác với
    CREATE TABLE new_tbl LIKE orig_tbl;
    45. MySQL 8.0 âm thầm bỏ qua
    CREATE TABLE new_tbl LIKE orig_tbl;
    44.

  • Các tùy chọn

    CREATE TABLE new_tbl LIKE orig_tbl;
    61 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    62 (có sẵn kể từ MySQL 8.0.21) được sử dụng để chỉ định các thuộc tính cột cho các công cụ lưu trữ chính và phụ. Các tùy chọn được dành riêng để sử dụng trong tương lai.

    Các giá trị được phép là một chuỗi theo nghĩa đen chứa một tài liệu

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    4 hợp lệ hoặc một chuỗi trống (''). Không hợp lệ
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    4 bị từ chối.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');

    Các giá trị

    CREATE TABLE new_tbl LIKE orig_tbl;
    61 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    62 có thể được lặp lại mà không có lỗi. Trong trường hợp này, giá trị được chỉ định cuối cùng được sử dụng.

    Các giá trị

    CREATE TABLE new_tbl LIKE orig_tbl;
    61 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    62 không được kiểm tra bởi máy chủ, chúng cũng không bị xóa khi công cụ lưu trữ của bảng được thay đổi.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    69

    Đối với các bảng

    CREATE TABLE new_tbl LIKE orig_tbl;
    45, có thể chỉ định liệu cột được lưu trữ trên đĩa hay trong bộ nhớ bằng cách sử dụng mệnh đề
    CREATE TABLE new_tbl LIKE orig_tbl;
    69.
    CREATE TABLE new_tbl LIKE orig_tbl;
    72 khiến cột được lưu trữ trên đĩa và
    CREATE TABLE new_tbl LIKE orig_tbl;
    73 Nguyên nhân lưu trữ trong bộ nhớ được sử dụng. Tuyên bố
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5 được sử dụng vẫn phải bao gồm mệnh đề
    CREATE TABLE new_tbl LIKE orig_tbl;
    75:

    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)

    Đối với các bảng

    CREATE TABLE new_tbl LIKE orig_tbl;
    45,
    CREATE TABLE new_tbl LIKE orig_tbl;
    77 tương đương với
    CREATE TABLE new_tbl LIKE orig_tbl;
    78.

    Điều khoản

    CREATE TABLE new_tbl LIKE orig_tbl;
    69 không có tác dụng đối với các bảng sử dụng các công cụ lưu trữ ngoài
    CREATE TABLE new_tbl LIKE orig_tbl;
    45. Từ khóa
    CREATE TABLE new_tbl LIKE orig_tbl;
    69 chỉ được hỗ trợ trong bản dựng của MySQLD được cung cấp với cụm NDB; Nó không được nhận ra trong bất kỳ phiên bản MySQL nào khác, trong đó bất kỳ nỗ lực nào để sử dụng từ khóa
    CREATE TABLE new_tbl LIKE orig_tbl;
    69 gây ra lỗi cú pháp.mysqld that is supplied with NDB Cluster; it is not recognized in any other version of MySQL, where any attempt to use the
    CREATE TABLE new_tbl LIKE orig_tbl;
    69 keyword causes a syntax error.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    83

    Được sử dụng để chỉ định một biểu thức cột được tạo. Để biết thông tin về các cột được tạo, xem Phần & NBSP; 13.1.20.8, Bảng Tạo bảng và các cột được tạo.

    Các cột được tạo có thể được lập chỉ mục.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 hỗ trợ các chỉ mục thứ cấp trên các cột được tạo ảo. Xem Phần & NBSP; 13.1.20.9, Chỉ mục thứ cấp và các cột được tạo.

Chỉ mục, khóa nước ngoài và các ràng buộc kiểm tra

Một số từ khóa áp dụng cho việc tạo các chỉ mục, khóa nước ngoài và các ràng buộc

CREATE TABLE new_tbl LIKE orig_tbl;
85. Đối với nền tảng chung ngoài các mô tả sau đây, xem Phần & NBSP; 13.1.15, Tuyên bố Creat Created Index, Phần & NBSP; 13.1.20.5, các ràng buộc chính của nước ngoài, và Phần & NBSP;

  • CREATE TABLE new_tbl LIKE orig_tbl;
    86

    Điều khoản

    CREATE TABLE new_tbl LIKE orig_tbl;
    86 có thể được đưa ra để đặt tên cho một ràng buộc. Nếu mệnh đề không được đưa ra hoặc
    CREATE TABLE new_tbl LIKE orig_tbl;
    88 không được bao gồm sau từ khóa
    CREATE TABLE new_tbl LIKE orig_tbl;
    89, MySQL sẽ tự động tạo tên ràng buộc, với ngoại lệ được ghi nhận bên dưới. Giá trị
    CREATE TABLE new_tbl LIKE orig_tbl;
    88, nếu được sử dụng, phải là duy nhất cho mỗi lược đồ (cơ sở dữ liệu), cho mỗi loại ràng buộc. Một bản sao
    CREATE TABLE new_tbl LIKE orig_tbl;
    88 dẫn đến một lỗi. Xem thêm các cuộc thảo luận về giới hạn độ dài của các định danh ràng buộc được tạo tại Phần & NBSP; 9.2.1, Giới hạn độ dài định danh của định danh.

    Ghi chú

    Nếu điều khoản ràng buộc

    CREATE TABLE new_tbl LIKE orig_tbl;
    88 không được đưa ra trong một định nghĩa khóa nước ngoài hoặc
    CREATE TABLE new_tbl LIKE orig_tbl;
    88 không được bao gồm theo từ khóa
    CREATE TABLE new_tbl LIKE orig_tbl;
    89, MySQL sử dụng tên chỉ số khóa nước ngoài lên đến MySQL 8.0.15 và tự động tạo tên ràng buộc sau đó.CONSTRAINT
    CREATE TABLE new_tbl LIKE orig_tbl;
    88
    clause is not given in a foreign key definition, or a
    CREATE TABLE new_tbl LIKE orig_tbl;
    88 is not included following the
    CREATE TABLE new_tbl LIKE orig_tbl;
    89 keyword, MySQL uses the foreign key index name up to MySQL 8.0.15, and automatically generates a constraint name thereafter.

    Tiêu chuẩn SQL chỉ định rằng tất cả các loại ràng buộc (khóa chính, chỉ mục duy nhất, khóa ngoại, kiểm tra) thuộc cùng một không gian tên. Trong MySQL, mỗi loại ràng buộc có không gian tên riêng trên mỗi lược đồ. Do đó, tên cho từng loại ràng buộc phải là duy nhất cho mỗi lược đồ, nhưng các ràng buộc của các loại khác nhau có thể có cùng tên.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    95

    Một chỉ mục duy nhất trong đó tất cả các cột chính phải được xác định là

    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    7. Nếu họ không được tuyên bố rõ ràng là
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    7, MySQL tuyên bố họ rất ngầm (và âm thầm). Một bảng chỉ có thể có một
    CREATE TABLE new_tbl LIKE orig_tbl;
    95. Tên của một
    CREATE TABLE new_tbl LIKE orig_tbl;
    99 luôn là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    00, do đó không thể được sử dụng làm tên cho bất kỳ loại chỉ mục nào khác.

    Nếu bạn không có

    CREATE TABLE new_tbl LIKE orig_tbl;
    95 và một ứng dụng yêu cầu
    CREATE TABLE new_tbl LIKE orig_tbl;
    95 trong bảng của bạn, MySQL sẽ trả về chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 đầu tiên không có cột
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 dưới dạng
    CREATE TABLE new_tbl LIKE orig_tbl;
    95.

    Trong các bảng

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7, hãy giữ ngắn gọn
    CREATE TABLE new_tbl LIKE orig_tbl;
    99 để giảm thiểu chi phí lưu trữ cho các chỉ mục thứ cấp. Mỗi mục chỉ mục thứ cấp chứa một bản sao của các cột khóa chính cho hàng tương ứng. .

    Trong bảng được tạo, một

    CREATE TABLE new_tbl LIKE orig_tbl;
    95 được đặt đầu tiên, theo sau là tất cả các chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03, và sau đó là các chỉ mục không liên quan. Điều này giúp trình tối ưu hóa MySQL ưu tiên sử dụng chỉ mục nào và cũng nhanh hơn để phát hiện các khóa
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 trùng lặp.

    Một

    CREATE TABLE new_tbl LIKE orig_tbl;
    95 có thể là một chỉ số nhiều cột. Tuy nhiên, bạn không thể tạo chỉ mục nhiều cột bằng cách sử dụng thuộc tính khóa
    CREATE TABLE new_tbl LIKE orig_tbl;
    95 trong một đặc tả cột. Làm như vậy chỉ đánh dấu cột đơn đó là chính. Bạn phải sử dụng mệnh đề
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    13 riêng biệt, ...).

    Nếu một bảng có chỉ số

    CREATE TABLE new_tbl LIKE orig_tbl;
    95 hoặc
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    15 bao gồm một cột duy nhất có loại số nguyên, bạn có thể sử dụng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    16 để tham khảo cột được lập chỉ mục trong các câu lệnh
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    1, như được mô tả trong các chỉ mục duy nhất.

    Trong MySQL, tên của một

    CREATE TABLE new_tbl LIKE orig_tbl;
    95 là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    00. Đối với các chỉ mục khác, nếu bạn không gán tên, chỉ mục được gán cùng tên với cột được lập chỉ mục đầu tiên, với hậu tố tùy chọn (
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    20,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    21,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    22) để làm cho nó trở nên duy nhất. Bạn có thể thấy tên chỉ mục cho một bảng bằng cách sử dụng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    23. Xem Phần & NBSP; 13.7.7.22, Báo cáo chỉ số hiển thị.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    24

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 thường là một từ đồng nghĩa với
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    26. Thuộc tính khóa
    CREATE TABLE new_tbl LIKE orig_tbl;
    99 cũng có thể được chỉ định chỉ là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 khi được đưa ra trong một định nghĩa cột. Điều này đã được triển khai để tương thích với các hệ thống cơ sở dữ liệu khác.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03

    Chỉ số

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 tạo ra một ràng buộc sao cho tất cả các giá trị trong chỉ mục phải khác biệt. Lỗi xảy ra nếu bạn cố gắng thêm một hàng mới với giá trị khóa phù hợp với hàng hiện có. Đối với tất cả các công cụ, chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 cho phép nhiều giá trị
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 cho các cột có thể chứa
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0. Nếu bạn chỉ định giá trị tiền tố cho một cột trong chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03, các giá trị cột phải là duy nhất trong độ dài tiền tố.

    Nếu một bảng có chỉ số

    CREATE TABLE new_tbl LIKE orig_tbl;
    95 hoặc
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    15 bao gồm một cột duy nhất có loại số nguyên, bạn có thể sử dụng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    16 để tham khảo cột được lập chỉ mục trong các câu lệnh
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    1, như được mô tả trong các chỉ mục duy nhất.

  • Trong MySQL, tên của một

    CREATE TABLE new_tbl LIKE orig_tbl;
    95 là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    00. Đối với các chỉ mục khác, nếu bạn không gán tên, chỉ mục được gán cùng tên với cột được lập chỉ mục đầu tiên, với hậu tố tùy chọn (
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    20,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    21,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    22) để làm cho nó trở nên duy nhất. Bạn có thể thấy tên chỉ mục cho một bảng bằng cách sử dụng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    23. Xem Phần & NBSP; 13.7.7.22, Báo cáo chỉ số hiển thị.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    24

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 thường là một từ đồng nghĩa với
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    26. Thuộc tính khóa
    CREATE TABLE new_tbl LIKE orig_tbl;
    99 cũng có thể được chỉ định chỉ là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 khi được đưa ra trong một định nghĩa cột. Điều này đã được triển khai để tương thích với các hệ thống cơ sở dữ liệu khác.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03

  • Chỉ số

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 tạo ra một ràng buộc sao cho tất cả các giá trị trong chỉ mục phải khác biệt. Lỗi xảy ra nếu bạn cố gắng thêm một hàng mới với giá trị khóa phù hợp với hàng hiện có. Đối với tất cả các công cụ, chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 cho phép nhiều giá trị
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 cho các cột có thể chứa
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0. Nếu bạn chỉ định giá trị tiền tố cho một cột trong chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03, các giá trị cột phải là duy nhất trong độ dài tiền tố.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    39

    Chỉ mục

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    39 là một loại chỉ mục đặc biệt được sử dụng cho các tìm kiếm toàn văn. Chỉ các công cụ lưu trữ
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 và
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 hỗ trợ các chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    39. Chúng chỉ có thể được tạo từ các cột
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    5,
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    6 và
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    2. Lập chỉ mục luôn xảy ra trên toàn bộ cột; Lập chỉ mục tiền tố cột không được hỗ trợ và bất kỳ độ dài tiền tố nào bị bỏ qua nếu được chỉ định. Xem Phần & NBSP; 12.10, Chức năng tìm kiếm toàn văn bản, để biết chi tiết về hoạt động. Một mệnh đề
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    47 có thể được chỉ định là giá trị
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    48 để liên kết một plugin trình phân tích cú pháp với chỉ mục nếu các hoạt động lập chỉ mục và tìm kiếm toàn văn cần xử lý đặc biệt. Điều khoản này chỉ có giá trị cho các chỉ mục
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    39.
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 và
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 Hỗ trợ các plugin trình phân tích cú pháp toàn văn bản. Xem các plugin trình phân tích cú pháp toàn văn bản và viết các plugin trình phân tích cú pháp toàn văn để biết thêm thông tin.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    52

    Bạn có thể tạo các chỉ mục

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    52 trên các loại dữ liệu không gian. Các loại không gian chỉ được hỗ trợ cho các bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 và
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 và các cột được lập chỉ mục phải được khai báo là
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    1. Xem Phần & NBSP; 11.4, các loại dữ liệu không gian.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    57

    • MySQL hỗ trợ các khóa nước ngoài, cho phép bạn tham chiếu chéo dữ liệu liên quan đến các bảng và các ràng buộc khóa nước ngoài, giúp giữ cho dữ liệu lan truyền này nhất quán. Để biết định nghĩa và thông tin tùy chọn, xem

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      58 và
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      59.

    • Các bảng được phân vùng sử dụng công cụ lưu trữ

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 không hỗ trợ các khóa nước ngoài. Xem Phần & NBSP; 24.6, Hạn chế và hạn chế về phân vùng, để biết thêm thông tin.

      CREATE TABLE new_tbl LIKE orig_tbl;
      85limits are measured in bytes. However, prefix lengths for index specifications in
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      6,
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      76, and
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      77 statements are interpreted as number of characters for nonbinary string types (
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      5,
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      6,
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      2) and number of bytes for binary string types (
      CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
      4,
      CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
      5,
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      1). Take this into account when specifying a prefix length for a nonbinary string column that uses a multibyte character set.

    • Điều khoản

      CREATE TABLE new_tbl LIKE orig_tbl;
      85 cho phép tạo các ràng buộc được kiểm tra các giá trị dữ liệu trong các hàng bảng. Xem Phần & NBSP; 13.1.20.6, Kiểm tra các ràng buộc.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    89

    Một số công cụ lưu trữ cho phép bạn chỉ định loại chỉ mục khi tạo một chỉ mục. Cú pháp cho bộ xác định

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    90 là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    91.

    Thí dụ:

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;

    Vị trí ưa thích cho

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    92 là sau danh sách cột chỉ mục. Nó có thể được đưa ra trước danh sách cột, nhưng hỗ trợ sử dụng tùy chọn ở vị trí đó không được chấp nhận và bạn nên hy vọng nó sẽ bị xóa trong bản phát hành MySQL trong tương lai.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    48

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    48 Giá trị Chỉ định các tùy chọn bổ sung cho một chỉ mục.

    • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      95

      Đối với các bảng

      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      3,
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      95 Tùy chọn chỉ định kích thước tính bằng byte để sử dụng cho các khối khóa chỉ mục. Giá trị được coi là một gợi ý; Một kích thước khác nhau có thể được sử dụng nếu cần thiết. Giá trị
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      95 được chỉ định cho một định nghĩa chỉ số riêng lẻ ghi đè giá trị cấp bảng
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      95.

      Để biết thông tin về thuộc tính

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      95 cấp bảng, hãy xem các tùy chọn bảng.

    • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      47

      Tùy chọn

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      47 chỉ có thể được sử dụng với các chỉ mục
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      39. Nó liên kết một plugin phân tích cú pháp với chỉ mục nếu các hoạt động lập chỉ mục và tìm kiếm toàn văn cần xử lý đặc biệt.
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      3 Hỗ trợ các plugin trình phân tích cú pháp toàn văn bản. Nếu bạn có bảng
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      3 với plugin trình phân tích cú pháp toàn văn bản liên kết, bạn có thể chuyển đổi bảng thành
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 bằng
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      76.

    • CREATE TABLE new_tbl LIKE orig_tbl;
      38

      Các định nghĩa chỉ số có thể bao gồm một nhận xét tùy chọn lên tới 1024 ký tự.

      Bạn có thể đặt giá trị

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7
      CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
      11 cho một chỉ mục riêng lẻ bằng mệnh đề
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      48
      CREATE TABLE new_tbl LIKE orig_tbl;
      38. Xem Phần & NBSP; 15.8.11, Định cấu hình ngưỡng hợp nhất cho các trang chỉ mục.
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      48
      CREATE TABLE new_tbl LIKE orig_tbl;
      38 clause. See Section 15.8.11, “Configuring the Merge Threshold for Index Pages”.

    • CREATE TABLE new_tbl LIKE orig_tbl;
      05,
      CREATE TABLE new_tbl LIKE orig_tbl;
      06

      Chỉ định khả năng hiển thị chỉ mục. Các chỉ mục có thể nhìn thấy theo mặc định. Một chỉ số vô hình không được sử dụng bởi trình tối ưu hóa. Đặc điểm kỹ thuật về khả năng hiển thị chỉ mục áp dụng cho các chỉ mục khác với các khóa chính (rõ ràng hoặc ẩn). Để biết thêm thông tin, xem Phần & NBSP; 8.3.12, Chỉ số vô hình của Hồi giáo.

    • Các tùy chọn

      CREATE TABLE new_tbl LIKE orig_tbl;
      61 và
      CREATE TABLE new_tbl LIKE orig_tbl;
      62 (có sẵn kể từ MySQL 8.0.21) được sử dụng để chỉ định các thuộc tính chỉ mục cho các công cụ lưu trữ chính và phụ. Các tùy chọn được dành riêng để sử dụng trong tương lai.

    Để biết thêm thông tin về các giá trị

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    48 cho phép, xem Phần & NBSP; 13.1.15, Tuyên bố Tạo Chỉ số. Để biết thêm thông tin về các chỉ mục, hãy xem Phần & NBSP; 8.3.1, Cách MySQL sử dụng các chỉ mục.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    58

    Đối với các chi tiết và ví dụ về cú pháp

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    58, xem phần & nbsp; 13.1.20.5, các ràng buộc chính của nước ngoài.

    Bảng

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    45 Hỗ trợ kiểm tra các ràng buộc chính của nước ngoài. Các cột của bảng được tham chiếu phải luôn được đặt tên rõ ràng. Cả hai hành động
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    23 và
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    24 trên các khóa nước ngoài đều được hỗ trợ. Để biết thêm thông tin và ví dụ chi tiết, xem Phần & NBSP; 13.1.20.5, các ràng buộc chính của nước ngoài.

    Đối với các công cụ lưu trữ khác, máy chủ MySQL phân tích cú pháp và bỏ qua cú pháp

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    57 trong các câu lệnh
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5.

    Quan trọng

    Đối với người dùng quen thuộc với tiêu chuẩn ANSI/ISO SQL, xin lưu ý rằng không có công cụ lưu trữ nào, bao gồm

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7, nhận ra hoặc thực thi mệnh đề
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    28 được sử dụng trong các định nghĩa ràng buộc toàn vẹn tham chiếu. Việc sử dụng một mệnh đề
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    28 rõ ràng không có hiệu ứng được chỉ định và cũng gây ra các điều khoản
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    30 và
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    24 bị bỏ qua. Vì những lý do này, nên tránh
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    28.

    Điều khoản

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    28 trong tiêu chuẩn SQL kiểm soát cách thức các giá trị
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 trong một khóa lạ tổng hợp (nhiều cột) được xử lý khi so sánh với khóa chính.
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 về cơ bản thực hiện các ngữ nghĩa được xác định bởi
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    36, cho phép khóa nước ngoài là tất cả hoặc một phần
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0. Trong trường hợp đó, hàng (bảng con) chứa khóa nước ngoài như vậy được phép chèn và không khớp với bất kỳ hàng nào trong bảng được tham chiếu (cha mẹ). Có thể thực hiện các ngữ nghĩa khác bằng cách sử dụng các kích hoạt.

    Ngoài ra, MySQL yêu cầu các cột được tham chiếu phải được lập chỉ mục cho hiệu suất. Tuy nhiên,

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 không thực thi bất kỳ yêu cầu nào rằng các cột được tham chiếu được khai báo
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 hoặc
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    40. Việc xử lý các tham chiếu khóa nước ngoài đối với các khóa hoặc khóa không liên quan có chứa các giá trị
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 không được xác định rõ cho các hoạt động như
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    42 hoặc
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    43. Bạn nên sử dụng các khóa nước ngoài chỉ các khóa tham chiếu cả
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    03 (hoặc
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    00) và
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    40.

    MySQL phân tích cú pháp nhưng bỏ qua các thông số kỹ thuật ____ đồng tuyến ____347 (như được định nghĩa trong tiêu chuẩn SQL) trong đó các tham chiếu được định nghĩa là một phần của đặc tả cột. MySQL chỉ chấp nhận các điều khoản

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    47 khi được chỉ định là một phần của đặc tả
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    57 riêng biệt. Để biết thêm thông tin, xem Phần & NBSP; 1.7.2.3, Sự khác biệt ràng buộc chính của nước ngoài.inline
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    47 specifications
    (as defined in the SQL standard) where the references are defined as part of the column specification. MySQL accepts
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    47 clauses only when specified as part of a separate
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    57 specification. For more information, see Section 1.7.2.3, “FOREIGN KEY Constraint Differences”.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    59

    Để biết thông tin về

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    51,
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    52,
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    53,
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    54 và
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    55, xem Phần & NBSP; 13.1.20.5, các ràng buộc chính của nước ngoài.

Tùy chọn bảng

Các tùy chọn bảng được sử dụng để tối ưu hóa hành vi của bảng. Trong hầu hết các trường hợp, bạn không phải chỉ định bất kỳ trong số họ. Các tùy chọn này áp dụng cho tất cả các công cụ lưu trữ trừ khi có quy định khác. Các tùy chọn không áp dụng cho một công cụ lưu trữ nhất định có thể được chấp nhận và ghi nhớ như là một phần của định nghĩa bảng. Các tùy chọn như vậy sau đó áp dụng nếu sau đó bạn sử dụng

CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
56 để chuyển đổi bảng để sử dụng một công cụ lưu trữ khác.

  • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    57

    Chỉ định công cụ lưu trữ cho bảng, sử dụng một trong các tên được hiển thị trong bảng sau. Tên động cơ có thể không được trích dẫn hoặc trích dẫn. Tên được trích dẫn

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    58 được công nhận nhưng bị bỏ qua.

    Công cụ lưu trữSự mô tả
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7
    Bảng an toàn giao dịch với khóa hàng và khóa nước ngoài. Công cụ lưu trữ mặc định cho các bảng mới. Xem Chương & NBSP; 15, Công cụ lưu trữ Innodb và đặc biệt là Phần & NBSP; 15.1, Giới thiệu về Innodb, nếu bạn có kinh nghiệm MySQL nhưng mới đến
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7.
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3
    Công cụ lưu trữ di động nhị phân chủ yếu được sử dụng cho khối lượng công việc chỉ đọc hoặc đọc nhiều nhất. Xem Phần & NBSP; 16.2, Công cụ lưu trữ Myisam.
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    5
    Dữ liệu cho công cụ lưu trữ này chỉ được lưu trữ trong bộ nhớ. Xem Phần & NBSP; 16.3, Công cụ lưu trữ bộ nhớ.
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    63
    Các bảng lưu trữ các hàng ở định dạng giá trị được phân tách bằng dấu phẩy. Xem Phần & NBSP; 16.4, Công cụ lưu trữ CSV.
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    64
    Các công cụ lưu trữ lưu trữ. Xem Phần & NBSP; 16.5, Công cụ lưu trữ lưu trữ.
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    65
    Một động cơ ví dụ. Xem Phần & NBSP; 16.9, Từ The Vication Storage Engine.
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    66
    Công cụ lưu trữ truy cập vào bảng từ xa. Xem Phần & NBSP; 16.8, Động cơ lưu trữ được liên kết.
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    67
    Đây là một từ đồng nghĩa với
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    5.
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    69
    Một bộ sưu tập các bảng
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 được sử dụng làm một bảng. Còn được gọi là
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    71. Xem Phần & NBSP; 16.7, Công cụ lưu trữ hợp nhất.
    CREATE TABLE new_tbl LIKE orig_tbl;
    45
    Các bảng được phân cụm, chịu lỗi, dựa trên bộ nhớ, các giao dịch hỗ trợ và khóa nước ngoài. Còn được gọi là
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    73. Xem Chương & NBSP; 23, MySQL NDB Cụm 8.0.

    Theo mặc định, nếu một công cụ lưu trữ được chỉ định không có sẵn, câu lệnh không có lỗi. Bạn có thể ghi đè hành vi này bằng cách xóa

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    74 khỏi chế độ SQL máy chủ (xem Phần & NBSP; 5.1.11, chế độ SQL Server SQL) để MySQL cho phép thay thế công cụ được chỉ định bằng công cụ lưu trữ mặc định thay thế. Thông thường trong các trường hợp như vậy, đây là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7, là giá trị mặc định cho biến hệ thống
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    76. Khi
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    74 bị vô hiệu hóa, một cảnh báo xảy ra nếu thông số kỹ thuật của công cụ lưu trữ không được tôn vinh.

  • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    78

    Xác định số lượng mà

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 mở rộng kích thước của không gian bảng khi nó trở nên đầy đủ. Được giới thiệu trong MySQL 8.0,23. Cài đặt phải là bội số của 4MB. Cài đặt mặc định là 0, khiến cho không gian bảng được mở rộng theo hành vi mặc định ngầm. Để biết thêm thông tin, xem Phần & NBSP; 15.6.3.9, Table AutoExtend_Size Cấu hình.

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9

    Giá trị

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 ban đầu cho bảng. Trong MySQL 8.0, điều này hoạt động cho các bảng
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3,
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    5,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 và
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    64. Để đặt giá trị tự động đầu tiên cho các công cụ không hỗ trợ tùy chọn bảng
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9, hãy chèn một hàng giả hình với giá trị một giá trị ít hơn giá trị mong muốn sau khi tạo bảng, sau đó xóa hàng giả.dummy row with a value one less than the desired value after creating the table, and then delete the dummy row.

    Đối với các công cụ hỗ trợ tùy chọn bảng

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9 trong các câu lệnh
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5, bạn cũng có thể sử dụng
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    89 Auto_increment =
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    90 để đặt lại giá trị
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    9. Giá trị không thể được đặt thấp hơn giá trị tối đa hiện tại trong cột.

  • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    92

    Một xấp xỉ của chiều dài hàng trung bình cho bảng của bạn. Bạn chỉ cần đặt điều này cho các bảng lớn với các hàng có kích thước thay đổi.

    Khi bạn tạo bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3, MySQL sử dụng sản phẩm của các tùy chọn
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    94 và
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    92 để quyết định bảng kết quả lớn như thế nào. Nếu bạn không chỉ định một trong hai tùy chọn, kích thước tối đa cho các tệp dữ liệu và chỉ mục
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 là 256TB theo mặc định. (Nếu hệ điều hành của bạn không hỗ trợ các tệp lớn, kích thước bảng bị hạn chế bởi giới hạn kích thước tệp.) có thể giảm kích thước con trỏ mặc định bằng cách đặt biến hệ thống
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    97. . Kích thước bằng cách đặt biến này. Đặt giá trị thành 7 kích thước bảng giấy phép lên tới 65,536TB.

  • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    98

    Chỉ định một bộ ký tự mặc định cho bảng.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    1 là một từ đồng nghĩa với
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    00. Nếu tên bộ ký tự là
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0, bộ ký tự cơ sở dữ liệu được sử dụng.

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    02

    Đặt cái này thành 1 nếu bạn muốn MySQL duy trì tổng kiểm tra trực tiếp cho tất cả các hàng (nghĩa là tổng kiểm tra mà MySQL tự động cập nhật khi bảng thay đổi). Điều này làm cho bảng chậm hơn một chút để cập nhật, nhưng cũng giúp dễ dàng tìm thấy các bảng bị hỏng. Tuyên bố

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    03 báo cáo tổng kiểm tra. (Chỉ
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3.)

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    05

    Chỉ định một đối chiếu mặc định cho bảng.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    38

    Một nhận xét cho bảng, dài tới 2048 ký tự.

    Bạn có thể đặt giá trị

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    11 cho bảng bằng mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    09
    CREATE TABLE new_tbl LIKE orig_tbl;
    38. Xem Phần & NBSP; 15.8.11, Định cấu hình ngưỡng hợp nhất cho các trang chỉ mục.

    Cài đặt các tùy chọn ndb_table. & Nbsp; Bảng nhận xét trong một

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5 tạo ra bảng
    CREATE TABLE new_tbl LIKE orig_tbl;
    45 hoặc câu lệnh
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    56 làm thay đổi người ta cũng có thể được sử dụng để chỉ định một đến bốn trong số các tùy chọn
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    14
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    15,
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    16,
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    17 hoặc dấu phẩy nếu cần, ngay sau chuỗi
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    19 bắt đầu văn bản nhận xét được trích dẫn. Một tuyên bố ví dụ sử dụng cú pháp này được hiển thị ở đây (văn bản nhấn mạnh):
    The table comment in a
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5 that creates an
    CREATE TABLE new_tbl LIKE orig_tbl;
    45 table or an
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    56 statement which alters one can also be used to specify one to four of the
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    14 options
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    15,
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    16,
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    17, or
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    18 as a set of name-value pairs, separated by commas if need be, immediately following the string
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    19 that begins the quoted comment text. An example statement using this syntax is shown here (emphasized text):

    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";

    Không gian không được phép trong chuỗi được trích dẫn. Chuỗi không nhạy cảm trường hợp.

    Nhận xét được hiển thị như một phần của đầu ra của

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    20. Văn bản của bình luận cũng có sẵn dưới dạng cột TABE_COMMENT của bảng Lược đồ thông tin MySQL
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    21.

    Cú pháp nhận xét này cũng được hỗ trợ với các câu lệnh

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    56 cho các bảng
    CREATE TABLE new_tbl LIKE orig_tbl;
    45. Hãy nhớ rằng một bình luận bảng được sử dụng với
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    56 thay thế bất kỳ bình luận hiện có nào mà bảng có thể đã có trước đây.

    Đặt tùy chọn

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    11 trong các nhận xét bảng không được hỗ trợ cho các bảng
    CREATE TABLE new_tbl LIKE orig_tbl;
    45 (nó bị bỏ qua).

    Để biết thông tin và ví dụ về cú pháp hoàn chỉnh, xem Phần & NBSP; 13.1.20.12, Cài đặt các tùy chọn bình luận NDB.

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    27

    Thuật toán nén được sử dụng để nén cấp trang cho các bảng

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Các giá trị được hỗ trợ bao gồm
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    29,
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    30 và
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    31. Thuộc tính
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    27 được giới thiệu với tính năng nén trang trong suốt. Nén trang chỉ được hỗ trợ với các bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 nằm trong các không gian bảng tệp cho mỗi bảng và chỉ có sẵn trên các nền tảng Linux và Windows hỗ trợ các tệp thưa thớt và đục lỗ. Để biết thêm thông tin, xem Phần & NBSP; 15.9.2, nén trang InnoDB.

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    34

    Chuỗi kết nối cho bảng

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    66.

    Ghi chú

    Các phiên bản cũ hơn của MySQL đã sử dụng tùy chọn

    CREATE TABLE new_tbl LIKE orig_tbl;
    38 cho chuỗi kết nối.

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37,
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    38

    Đối với

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7, mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    40 'cho phép tạo các bảng bên ngoài thư mục dữ liệu. Biến
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 phải được bật để sử dụng mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    42. Đường dẫn thư mục đầy đủ phải được chỉ định. Kể từ MySQL 8.0.21, thư mục được chỉ định phải được biết là
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Để biết thêm thông tin, xem Phần & NBSP; 15.6.1.2, Tạo các bảng bên ngoài.

    Khi tạo bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3, bạn có thể sử dụng mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    40 ', mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    46' hoặc cả hai. Họ chỉ định nơi đặt tệp dữ liệu và chỉ mục của bảng
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 tương ứng. Không giống như các bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7, MySQL không tạo các thư mục con tương ứng với tên cơ sở dữ liệu khi tạo bảng
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 với tùy chọn
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 hoặc
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    38. Các tệp được tạo trong thư mục được chỉ định.

    Bạn phải có đặc quyền

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    52 để sử dụng tùy chọn bảng
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 hoặc
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    54.

    Quan trọng

    Các tùy chọn cấp độ bảng

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 và
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    54 bị bỏ qua cho các bảng được phân vùng. (Lỗi #32091)

    Các tùy chọn này chỉ hoạt động khi bạn không sử dụng tùy chọn

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    57. Hệ điều hành của bạn cũng phải có cuộc gọi
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    58 hoạt động, an toàn. Xem Phần & NBSP; 8.12.2.2, Sử dụng các liên kết tượng trưng cho các bảng Myisam trên UNIX, để biết thêm thông tin đầy đủ.

    Nếu bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 được tạo không có tùy chọn
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37, tệp
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    61 được tạo trong thư mục cơ sở dữ liệu. Theo mặc định, nếu
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 tìm thấy tệp
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    61 hiện có trong trường hợp này, nó sẽ ghi đè lên nó. Điều tương tự cũng áp dụng cho các tệp
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    64 cho các bảng được tạo không có tùy chọn
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    38. Để ngăn chặn hành vi này, hãy khởi động máy chủ với tùy chọn
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    66, trong trường hợp đó
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 không ghi đè lên các tệp hiện có và thay vào đó trả về lỗi.

    Nếu bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 được tạo bằng tùy chọn
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 hoặc
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    38 và tệp
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    61 hoặc
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    64 hiện có,
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3 luôn trả về lỗi và không ghi đè lên tệp trong thư mục được chỉ định.

    Quan trọng

    Bạn không thể sử dụng tên đường dẫn chứa thư mục dữ liệu MySQL với

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 hoặc
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    54. Điều này bao gồm các bảng phân vùng và các phân vùng bảng riêng lẻ. (Xem lỗi #32167.)

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    76

    Đặt cái này thành 1 nếu bạn muốn trì hoãn các cập nhật khóa cho bảng cho đến khi bảng được đóng. Xem mô tả của biến hệ thống

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    77 trong Phần & NBSP; 5.1.8, các biến hệ thống máy chủ của Hồi giáo. (Chỉ
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3.)

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    79

    Điều khoản

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    79 cho phép hoặc vô hiệu hóa mã hóa dữ liệu cấp trang cho bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Một plugin Keyring phải được cài đặt và cấu hình trước khi mã hóa có thể được bật. Trước MySQL 8.0.16, mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    79 chỉ có thể được chỉ định khi tạo một bảng trong một không gian bảng A Tệp mỗi bảng. Kể từ MySQL 8.0.16, mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    79 cũng có thể được chỉ định khi tạo một bảng trong một không gian bảng chung.

    Kể từ MySQL 8.0.16, bảng kế thừa mã hóa lược đồ mặc định nếu mệnh đề

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    79 không được chỉ định. Nếu biến
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    85 được bật, đặc quyền
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    86 được yêu cầu để tạo một bảng với cài đặt mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    79 khác với mã hóa lược đồ mặc định. Khi tạo một bảng trong một không gian bảng chung, mã hóa bảng và không gian bảng phải khớp.

    Kể từ MySQL 8.0.16, việc chỉ định mệnh đề

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    79 có giá trị khác với
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    89 hoặc
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    90 không được phép khi sử dụng công cụ lưu trữ không hỗ trợ mã hóa. Trước đây, điều khoản đã được chấp nhận.

    Để biết thêm thông tin, hãy xem Phần & NBSP; 15.13, mã hóa dữ liệu tại InnoDB.

  • Các tùy chọn

    CREATE TABLE new_tbl LIKE orig_tbl;
    61 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    62 (có sẵn kể từ MySQL 8.0.21) được sử dụng để chỉ định các thuộc tính bảng cho các công cụ lưu trữ chính và phụ. Các tùy chọn được dành riêng để sử dụng trong tương lai.

    Các giá trị được phép là một chuỗi theo nghĩa đen chứa một tài liệu

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    4 hợp lệ hoặc một chuỗi trống (''). Không hợp lệ
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    4 bị từ chối.

    CREATE TABLE new_tbl LIKE orig_tbl;
    0

    Các giá trị

    CREATE TABLE new_tbl LIKE orig_tbl;
    61 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    62 có thể được lặp lại mà không có lỗi. Trong trường hợp này, giá trị được chỉ định cuối cùng được sử dụng.

    Các giá trị

    CREATE TABLE new_tbl LIKE orig_tbl;
    61 và
    CREATE TABLE new_tbl LIKE orig_tbl;
    62 không được kiểm tra bởi máy chủ, chúng cũng không bị xóa khi công cụ lưu trữ của bảng được thay đổi.

  • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    99

    Nếu bạn muốn chèn dữ liệu vào bảng

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    69, bạn phải chỉ định với
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    99 bảng mà hàng nên được chèn.
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    99 chỉ là một tùy chọn hữu ích cho các bảng
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    69. Sử dụng giá trị
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    04 hoặc
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    05 để chèn đi đến bảng đầu tiên hoặc cuối cùng hoặc giá trị
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    06 để ngăn chặn các phần chèn. Xem Phần & NBSP; 16.7, Công cụ lưu trữ hợp nhất.

  • CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95

    Đối với các bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 Tùy chọn chỉ định kích thước tính bằng byte để sử dụng cho các khối khóa chỉ mục. Giá trị được coi là một gợi ý; Một kích thước khác nhau có thể được sử dụng nếu cần thiết. Giá trị
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 được chỉ định cho một định nghĩa chỉ số riêng lẻ ghi đè giá trị cấp bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95.

    Đối với các bảng

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7,
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 chỉ định kích thước trang tính bằng kilobyte để sử dụng cho các bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 nén. Giá trị
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 được coi là một gợi ý; Một kích thước khác nhau có thể được sử dụng bởi
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 nếu cần thiết.
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 chỉ có thể nhỏ hơn hoặc bằng giá trị
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    18. Giá trị 0 biểu thị kích thước trang nén mặc định, là một nửa giá trị
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    18. Tùy thuộc vào
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    18, các giá trị
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 có thể bao gồm 0, 1, 2, 4, 8 và 16. Xem Phần & NBSP; 15.9.1, Nén bảng InnoDB để biết thêm thông tin.

    Oracle khuyến nghị cho phép

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    22 khi chỉ định
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 cho bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Khi
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    22 được bật, việc chỉ định giá trị
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 không hợp lệ trả về lỗi. Nếu
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    22 bị vô hiệu hóa, giá trị
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 không hợp lệ dẫn đến cảnh báo và tùy chọn
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 bị bỏ qua.

    Cột

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    30 để đáp ứng với
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    31 báo cáo
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 thực tế được sử dụng bởi bảng, cũng như
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    20.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 chỉ hỗ trợ
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 ở cấp bảng.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 không được hỗ trợ với các giá trị 32kb và 64kb
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    18.
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 Nén bảng không hỗ trợ các kích thước các trang này.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 không hỗ trợ tùy chọn
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    95 khi tạo bảng tạm thời.

  • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    94

    Số lượng hàng tối đa bạn dự định lưu trữ trong bảng. Đây không phải là một giới hạn cứng, mà là một gợi ý cho công cụ lưu trữ mà bảng phải có thể lưu trữ ít nhất là nhiều hàng này.

    Quan trọng

    Việc sử dụng

    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    94 với các bảng
    CREATE TABLE new_tbl LIKE orig_tbl;
    45 để kiểm soát số lượng phân vùng bảng được không dùng nữa. Nó vẫn được hỗ trợ trong các phiên bản sau để tương thích ngược, nhưng có thể loại bỏ trong một bản phát hành trong tương lai. Sử dụng phân vùng_balance thay thế; Xem cài đặt các tùy chọn NDB_TABLE.

    Công cụ lưu trữ

    CREATE TABLE new_tbl LIKE orig_tbl;
    45 coi giá trị này là tối đa. Nếu bạn có kế hoạch tạo các bảng cụm NDB rất lớn (chứa hàng triệu hàng), bạn nên sử dụng tùy chọn này để đảm bảo rằng
    CREATE TABLE new_tbl LIKE orig_tbl;
    45 phân bổ đủ số lượng chỉ số trong bảng băm được sử dụng để lưu trữ băm của các phím chính của bảng bằng cách đặt
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    46, trong đó
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    47 là số lượng hàng mà bạn mong đợi sẽ chèn vào bảng.

    Giá trị tối đa ____394 là 4294967295; Các giá trị lớn hơn được cắt ngắn đến giới hạn này.

  • SELECT * FROM tbl_name WHERE auto_col IS NULL
    49

    Số lượng hàng tối thiểu bạn dự định lưu trữ trong bảng. Công cụ lưu trữ

    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    5 sử dụng tùy chọn này như một gợi ý về việc sử dụng bộ nhớ.

  • SELECT * FROM tbl_name WHERE auto_col IS NULL
    51

    Chỉ có hiệu lực với bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3. Đặt tùy chọn này thành 1 nếu bạn muốn có các chỉ mục nhỏ hơn. Điều này thường làm cho cập nhật chậm hơn và đọc nhanh hơn. Đặt tùy chọn thành 0 vô hiệu hóa tất cả đóng gói các phím. Đặt nó thành
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0 cho biết công cụ lưu trữ chỉ đóng gói dài
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    5,
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    6,
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    4 hoặc
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    5.

    Nếu bạn không sử dụng

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    51, mặc định là đóng gói chuỗi, nhưng không phải là số. Nếu bạn sử dụng
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    59, các số cũng được đóng gói.

    Khi đóng gói các phím số nhị phân, MySQL sử dụng nén tiền tố:

    • Mỗi khóa cần một byte phụ để cho biết số byte của khóa trước là giống nhau cho khóa tiếp theo.

    • Con trỏ đến hàng được lưu trữ theo thứ tự đầu tiên trực tiếp sau khóa, để cải thiện nén.

    Điều này có nghĩa là nếu bạn có nhiều khóa bằng nhau trên hai hàng liên tiếp, tất cả đều theo các phím giống nhau của các khóa thường chỉ mất hai byte (bao gồm cả con trỏ đến hàng). So sánh điều này với trường hợp thông thường trong đó các phím sau sử dụng

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    60 (trong đó kích thước con trỏ thường là 4). Ngược lại, bạn chỉ nhận được một lợi ích đáng kể từ nén tiền tố nếu bạn có nhiều số giống nhau. Nếu tất cả các khóa hoàn toàn khác nhau, bạn sẽ sử dụng một byte nhiều hơn cho mỗi khóa, nếu khóa không phải là khóa có thể có giá trị
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0. .same keys usually only take two bytes (including the pointer to the row). Compare this to the ordinary case where the following keys takes
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    60 (where the pointer size is usually 4). Conversely, you get a significant benefit from prefix compression only if you have many numbers that are the same. If all keys are totally different, you use one byte more per key, if the key is not a key that can have
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 values. (In this case, the packed key length is stored in the same byte that is used to mark if a key is
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0.)

  • SELECT * FROM tbl_name WHERE auto_col IS NULL
    63

    Tùy chọn này không được sử dụng.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    53

    Xác định định dạng vật lý trong đó các hàng được lưu trữ.

    Khi tạo một bảng có chế độ nghiêm ngặt bị vô hiệu hóa, định dạng hàng mặc định của công cụ lưu trữ được sử dụng nếu định dạng hàng được chỉ định không được hỗ trợ. Định dạng hàng thực tế của bảng được báo cáo trong cột

    SELECT * FROM tbl_name WHERE auto_col IS NULL
    65 để đáp ứng với
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    66. Cột
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    30 hiển thị định dạng hàng được chỉ định trong câu lệnh
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5, cũng như
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    20.

    Lựa chọn định dạng hàng khác nhau tùy thuộc vào công cụ lưu trữ được sử dụng cho bảng.

    Đối với bảng

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7:

    • Định dạng hàng mặc định được xác định bởi

      SELECT * FROM tbl_name WHERE auto_col IS NULL
      71, có cài đặt mặc định là
      CREATE TABLE new_tbl LIKE orig_tbl;
      48. Định dạng hàng mặc định được sử dụng khi tùy chọn
      CREATE TABLE new_tbl LIKE orig_tbl;
      53 không được xác định hoặc khi
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      74 được sử dụng.

      Nếu tùy chọn

      CREATE TABLE new_tbl LIKE orig_tbl;
      53 không được xác định hoặc nếu
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      74 được sử dụng, các hoạt động xây dựng lại bảng cũng âm thầm thay đổi định dạng hàng của bảng thành mặc định được xác định bởi
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      71. Để biết thêm thông tin, xem xác định định dạng hàng của bảng.

    • Để lưu trữ

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 hiệu quả hơn các loại dữ liệu, đặc biệt là các loại
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      1, hãy sử dụng
      CREATE TABLE new_tbl LIKE orig_tbl;
      48. Xem định dạng hàng động cho các yêu cầu liên quan đến định dạng hàng
      CREATE TABLE new_tbl LIKE orig_tbl;
      48.

    • Để bật nén cho các bảng

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7, chỉ định
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      83. Tùy chọn
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      83 không được hỗ trợ khi tạo bảng tạm thời. Xem Phần & NBSP; 15.9, Bảng InnoDB và Trang nén trang trên mạng để biết các yêu cầu liên quan đến định dạng hàng
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      73.

    • Định dạng hàng được sử dụng trong các phiên bản cũ hơn của MySQL vẫn có thể được yêu cầu bằng cách chỉ định định dạng hàng

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      69.

    • Khi bạn chỉ định mệnh đề không mặc định

      CREATE TABLE new_tbl LIKE orig_tbl;
      53, hãy xem xét tùy chọn cấu hình
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      22.

    • SELECT * FROM tbl_name WHERE auto_col IS NULL
      89 không được hỗ trợ. Nếu
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      89 được chỉ định trong khi
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      22 bị vô hiệu hóa,
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 sẽ đưa ra cảnh báo và giả định
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      93. Nếu
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      89 được chỉ định trong khi
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      22 được bật, đây là mặc định,
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 trả về lỗi.

    • Để biết thêm thông tin về các định dạng hàng

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7, xem Phần & NBSP; 15.10, định dạng hàng của InnOdB.

    Đối với các bảng

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    3, giá trị tùy chọn có thể là
    CREATE TABLE new_tbl LIKE orig_tbl;
    47 hoặc
    CREATE TABLE new_tbl LIKE orig_tbl;
    48 cho định dạng hàng tĩnh hoặc có độ dài thay đổi. Myisampack đặt loại thành
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    73. Xem Phần & NBSP; 16.2.3, các định dạng lưu trữ bảng Myisam.myisampack sets the type to
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    73. See Section 16.2.3, “MyISAM Table Storage Formats”.

    Đối với các bảng

    CREATE TABLE new_tbl LIKE orig_tbl;
    45, mặc định
    CREATE TABLE new_tbl LIKE orig_tbl;
    53 là
    CREATE TABLE new_tbl LIKE orig_tbl;
    48.

  • CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    05

    Đây là một tùy chọn bảng sử dụng nội bộ. Nó đã được giới thiệu trong MySQL 8.0,21 để cho phép

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    06 được ghi lại dưới dạng một giao dịch nguyên tử duy nhất trong nhật ký nhị phân khi sử dụng sao chép dựa trên hàng với công cụ lưu trữ hỗ trợ DDL nguyên tử. Chỉ
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    07,
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    08 và
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    09 được cho phép sau
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    10. Để biết thông tin liên quan, xem Phần & NBSP; 13.1.1, Câu lệnh xác định dữ liệu nguyên tử hỗ trợ.

  • CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    11

    Chỉ định xem có nên tự động tính toán lại số liệu thống kê liên tục cho bảng

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 hay không. Giá trị
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0 gây ra cài đặt thống kê liên tục cho bảng được xác định bởi tùy chọn cấu hình
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    14. Giá trị
    CREATE TABLE new_tbl LIKE orig_tbl;
    18 khiến số liệu thống kê được tính toán lại khi 10% dữ liệu trong bảng đã thay đổi. Giá trị
    CREATE TABLE new_tbl LIKE orig_tbl;
    13 ngăn chặn tính toán lại tự động cho bảng này; Với cài đặt này, hãy đưa ra một tuyên bố
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    17 để tính toán lại số liệu thống kê sau khi thực hiện những thay đổi đáng kể đối với bảng. Để biết thêm thông tin về tính năng thống kê liên tục, xem Phần & NBSP; 15.8.10.1, Cấu hình các tham số thống kê tối ưu hóa liên tục.

  • CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    18

    Chỉ định xem có cho phép số liệu thống kê liên tục cho bảng

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 hay không. Giá trị
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    0 gây ra cài đặt thống kê liên tục cho bảng được xác định bởi tùy chọn cấu hình
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    21. Giá trị
    CREATE TABLE new_tbl LIKE orig_tbl;
    18 cho phép số liệu thống kê liên tục cho bảng, trong khi giá trị
    CREATE TABLE new_tbl LIKE orig_tbl;
    13 tắt tính năng này. Sau khi cho phép các số liệu thống kê liên tục thông qua câu lệnh
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    24 hoặc
    CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
    56, hãy đưa ra tuyên bố
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    17 để tính toán số liệu thống kê, sau khi tải dữ liệu đại diện vào bảng. Để biết thêm thông tin về tính năng thống kê liên tục, xem Phần & NBSP; 15.8.10.1, Cấu hình các tham số thống kê tối ưu hóa liên tục.

  • CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    27

    Số lượng trang chỉ mục để lấy mẫu khi ước tính tính toán và các số liệu thống kê khác cho một cột được lập chỉ mục, chẳng hạn như các trang được tính bằng

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    28. Để biết thêm thông tin, xem Phần & NBSP; 15.8.10.1, Cấu hình các tham số thống kê tối ưu hóa liên tục.

  • CREATE TABLE new_tbl LIKE orig_tbl;
    75

    Điều khoản

    CREATE TABLE new_tbl LIKE orig_tbl;
    75 có thể được sử dụng để tạo một bảng trong một không gian bảng chung hiện có, một không gian bảng cho mỗi bảng hoặc không gian bảng hệ thống.

    CREATE TABLE new_tbl LIKE orig_tbl;
    1

    Không gian bảng chung mà bạn chỉ định phải tồn tại trước khi sử dụng mệnh đề

    CREATE TABLE new_tbl LIKE orig_tbl;
    75. Để biết thông tin về các không gian bảng chung, xem Phần & NBSP; 15.6.3.3, Không gian bảng chung.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    32 là một định danh nhạy cảm trường hợp. Nó có thể được trích dẫn hoặc không được trích dẫn. Nhân vật chém về phía trước (không được phép). Tên bắt đầu bằng tiếng InnoDB_ được dành riêng cho mục đích sử dụng đặc biệt./) is not permitted. Names beginning with innodb_ are reserved for special use.

    Để tạo một bảng trong không gian bảng hệ thống, chỉ định

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    33 làm tên không gian bảng.

    CREATE TABLE new_tbl LIKE orig_tbl;
    2

    Sử dụng

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    34, bạn có thể đặt một bảng của bất kỳ định dạng hàng không nén nào trong không gian bảng hệ thống bất kể cài đặt
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41. Ví dụ: bạn có thể thêm một bảng với
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    93 vào không gian bảng hệ thống bằng cách sử dụng
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    34.

    Để tạo một bảng trong một không gian bảng tệp cho mỗi bảng, chỉ định

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 làm tên không gian bảng.

    CREATE TABLE new_tbl LIKE orig_tbl;
    3

    Ghi chú

    Nếu

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 được bật, bạn không cần chỉ định
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    40 để tạo không gian bảng cho mỗi bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Các bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 được tạo trong các không gian bảng tệp theo bảng theo mặc định khi
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 được bật.

    Điều khoản

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 được cho phép với
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    45 nhưng nếu không thì không được hỗ trợ để sử dụng kết hợp với mệnh đề
    CREATE TABLE new_tbl LIKE orig_tbl;
    75. Kể từ MySQL 8.0.21, thư mục được chỉ định trong mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 phải được biết đến
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Để biết thêm thông tin, hãy xem bằng cách sử dụng mệnh đề thư mục dữ liệu.

    Ghi chú

    Nếu

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 được bật, bạn không cần chỉ định
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    40 để tạo không gian bảng cho mỗi bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Các bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 được tạo trong các không gian bảng tệp theo bảng theo mặc định khi
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 được bật.

    Điều khoản

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 được cho phép với
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    45 nhưng nếu không thì không được hỗ trợ để sử dụng kết hợp với mệnh đề
    CREATE TABLE new_tbl LIKE orig_tbl;
    75. Kể từ MySQL 8.0.21, thư mục được chỉ định trong mệnh đề
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    37 phải được biết đến
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Để biết thêm thông tin, hãy xem bằng cách sử dụng mệnh đề thư mục dữ liệu.

    Hỗ trợ cho các điều khoản

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    49 và
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    50 với
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    51 được không dùng nữa kể từ MySQL 8.0.13; Hy vọng nó sẽ được loại bỏ trong một phiên bản tương lai của MySQL.

    Tùy chọn bảng

    CREATE TABLE new_tbl LIKE orig_tbl;
    69 chỉ được sử dụng với bảng
    CREATE TABLE new_tbl LIKE orig_tbl;
    45.
    CREATE TABLE new_tbl LIKE orig_tbl;
    69 xác định loại lưu trữ được sử dụng (đĩa hoặc bộ nhớ) và có thể là
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    55 hoặc
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    5.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    57 gán một bảng cho một không gian bảng dữ liệu đĩa NDB. Không gian bảng phải đã được tạo bằng
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    58. Xem Phần & NBSP; 23.6.10, Bảng dữ liệu đĩa cụm NDB NDB, để biết thêm thông tin.

  • Quan trọng

    Một mệnh đề

    CREATE TABLE new_tbl LIKE orig_tbl;
    69 không thể được sử dụng trong câu lệnh
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5 mà không có mệnh đề
    CREATE TABLE new_tbl LIKE orig_tbl;
    75.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    62

    Ghi chú

    Nếu

    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 được bật, bạn không cần chỉ định
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    40 để tạo không gian bảng cho mỗi bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7. Các bảng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    7 được tạo trong các không gian bảng tệp theo bảng theo mặc định khi
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    41 được bật.

Điều khoản
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
37 được cho phép với
CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
45 nhưng nếu không thì không được hỗ trợ để sử dụng kết hợp với mệnh đề
CREATE TABLE new_tbl LIKE orig_tbl;
75. Kể từ MySQL 8.0.21, thư mục được chỉ định trong mệnh đề
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
37 phải được biết đến
CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7. Để biết thêm thông tin, hãy xem bằng cách sử dụng mệnh đề thư mục dữ liệu.

Hỗ trợ cho các điều khoản

CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
49 và
CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
50 với
CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
51 được không dùng nữa kể từ MySQL 8.0.13; Hy vọng nó sẽ được loại bỏ trong một phiên bản tương lai của MySQL.

Tùy chọn bảng

CREATE TABLE new_tbl LIKE orig_tbl;
69 chỉ được sử dụng với bảng
CREATE TABLE new_tbl LIKE orig_tbl;
45.
CREATE TABLE new_tbl LIKE orig_tbl;
69 xác định loại lưu trữ được sử dụng (đĩa hoặc bộ nhớ) và có thể là
CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
55 hoặc
CREATE TABLE t1 (
    c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    c2 VARCHAR(100),
    c3 VARCHAR(100) )
ENGINE=NDB
COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
5.

Các phân vùng có thể được sửa đổi, hợp nhất, thêm vào các bảng và rơi từ các bảng. Để biết thông tin cơ bản về các câu lệnh MySQL để thực hiện các nhiệm vụ này, hãy xem Phần & NBSP; 13.1.9, Tuyên bố bảng thay đổi. Để biết thêm các mô tả và ví dụ chi tiết, xem Phần & NBSP; 24.3, Quản lý phân vùng.

  • CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    73

    Nếu được sử dụng, mệnh đề

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    70 bắt đầu bằng
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    73. Mệnh đề này chứa hàm được sử dụng để xác định phân vùng; Hàm trả về giá trị số nguyên từ 1 đến
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76, trong đó
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76 là số lượng phân vùng. .

    Ghi chú

    Biểu thức (

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    84) được sử dụng trong mệnh đề
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    73 không thể đề cập đến bất kỳ cột nào không trong bảng được tạo; Các tài liệu tham khảo như vậy đặc biệt không được phép và khiến tuyên bố không thành công với lỗi. (Lỗi #29444)

  • HASH(

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    84)

    Băm một hoặc nhiều cột để tạo một khóa để đặt và định vị các hàng.

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    84 là một biểu thức sử dụng một hoặc nhiều cột bảng. Đây có thể là bất kỳ biểu thức MySQL hợp lệ nào (bao gồm các hàm MySQL) mang lại một giá trị số nguyên duy nhất. Ví dụ: cả hai đều là các câu lệnh
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5 hợp lệ bằng cách sử dụng
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    83:

    CREATE TABLE new_tbl LIKE orig_tbl;
    4

    Bạn không được sử dụng các điều khoản

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 hoặc
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 với
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    86.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    83 sử dụng phần còn lại của
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    84 chia cho số lượng phân vùng (nghĩa là mô đun). Để biết ví dụ và thông tin bổ sung, xem Phần & NBSP; 24.2.4, Phân vùng Hash.

    Từ khóa

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    89 đòi hỏi một thuật toán hơi khác nhau. Trong trường hợp này, số lượng phân vùng trong đó một hàng được lưu trữ được tính là kết quả của một hoặc nhiều hoạt động logic
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    90. Để thảo luận và ví dụ về băm tuyến tính, xem phần & nbsp; 24.2.4.1, phân vùng băm tuyến tính.

  • CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    91)

    Điều này tương tự như

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    92, ngoại trừ việc MySQL cung cấp hàm băm để đảm bảo phân phối dữ liệu chẵn. Đối số
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    93 chỉ đơn giản là danh sách 1 cột bảng trở lên (tối đa: 16). Ví dụ này cho thấy một bảng đơn giản được phân vùng bởi khóa, với 4 phân vùng:

    CREATE TABLE new_tbl LIKE orig_tbl;
    5

    Đối với các bảng được phân vùng bởi khóa, bạn có thể sử dụng phân vùng tuyến tính bằng cách sử dụng từ khóa

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    89. Điều này có tác dụng tương tự như với các bảng được phân vùng bởi
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    92. Đó là, số phân vùng được tìm thấy bằng toán tử
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    96 chứ không phải là mô đun (xem Phần & NBSP; 24.2.4.1, phân vùng băm tuyến tính, và phần & nbsp; 24.2.5, phân vùng chính, để biết chi tiết). Ví dụ này sử dụng phân vùng tuyến tính bằng khóa để phân phối dữ liệu giữa 5 phân vùng:

    CREATE TABLE new_tbl LIKE orig_tbl;
    6

    Tùy chọn

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    97 được hỗ trợ với
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    98.
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    99 khiến máy chủ sử dụng các chức năng đánh khóa tương tự như MySQL 5.1;
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    00 có nghĩa là máy chủ sử dụng các chức năng khóa chính được triển khai và sử dụng theo mặc định cho các bảng được phân vùng
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 mới trong MySQL 5.5 trở lên. . Tùy chọn này được sử dụng chủ yếu khi nâng cấp hoặc hạ cấp
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    03 Các bảng được phân vùng giữa các phiên bản MySQL 5.1 và sau này hoặc để tạo các bảng được phân vùng bởi
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 hoặc
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    05 trên máy chủ MySQL 5.5 hoặc sau đó có thể được sử dụng trên máy chủ MYSQL 5.1. Để biết thêm thông tin, xem Phần & NBSP; 13.1.9.1, hoạt động phân vùng bảng thay đổi.

    MySQLDump trong MySQL 5.7 (và sau đó) viết tùy chọn này được đặt trong các nhận xét đã được phiên bản, như thế này: in MySQL 5.7 (and later) writes this option encased in versioned comments, like this:

    CREATE TABLE new_tbl LIKE orig_tbl;
    7

    Điều này khiến MySQL 5.6.10 và các máy chủ trước đó bỏ qua tùy chọn, điều này sẽ gây ra lỗi cú pháp trong các phiên bản đó. Nếu bạn có kế hoạch tải một kết xuất được tạo trên máy chủ MySQL 5.7, nơi bạn sử dụng các bảng được phân vùng hoặc phân chia bởi

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 vào máy chủ MySQL 5.6 trước phiên bản 5.6.11, hãy chắc chắn tham khảo các thay đổi trong MySQL 5.6, trước khi tiến hành. .

    Cũng trong MySQL 5.6.11 trở lên,

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    99 được hiển thị khi cần thiết trong đầu ra của
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    20 bằng cách sử dụng các nhận xét được phiên bản theo cách tương tự như MySQLDump.
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    00 luôn được bỏ qua từ đầu ra
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    20, ngay cả khi tùy chọn này được chỉ định khi tạo bảng gốc.mysqldump.
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    00 is always omitted from
    CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
    20 output, even if this option was specified when creating the original table.

    Bạn không được sử dụng các điều khoản

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 hoặc
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 với
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    14.

  • RANGE(

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    84)

    Trong trường hợp này,

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    84 hiển thị một loạt các giá trị bằng cách sử dụng một bộ toán tử
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84. Khi sử dụng phân vùng phạm vi, bạn phải xác định ít nhất một phân vùng bằng cách sử dụng
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84. Bạn không thể sử dụng
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 với phân vùng phạm vi.

    Ghi chú

    Đối với các bảng được phân vùng bởi

    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    20,
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 phải được sử dụng với giá trị theo nghĩa đen của số nguyên hoặc biểu thức đánh giá thành một giá trị số nguyên duy nhất. Trong MySQL 8.0, bạn có thể khắc phục giới hạn này trong một bảng được xác định bằng
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    22, như được mô tả sau trong phần này.

    Giả sử rằng bạn có một bảng mà bạn muốn phân vùng trên một cột chứa các giá trị năm, theo sơ đồ sau.

    Số phân vùng:Phạm vi năm:
    0 1990 và sớm hơn
    1 1991 đến 1994
    2 1995 đến 1998
    3 1999 đến 2002
    4 2003 đến 2005
    5 2006 trở lên

    Một bảng thực hiện một sơ đồ phân vùng như vậy có thể được thực hiện bằng câu lệnh

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    5 được hiển thị ở đây:

    CREATE TABLE new_tbl LIKE orig_tbl;
    8

    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    24 Tuyên bố hoạt động theo kiểu liên tiếp.
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    25 hoạt động để chỉ định các giá trị còn sót lại trên mạng lớn hơn giá trị tối đa được chỉ định khác.leftover values that are greater than the maximum value otherwise specified.

    Các mệnh đề

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 hoạt động tuần tự theo cách tương tự như các phần của
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    27 của khối
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    28 (như được tìm thấy trong nhiều ngôn ngữ lập trình như C, Java và PHP). Đó là, các điều khoản phải được sắp xếp theo cách mà giới hạn trên được chỉ định trong mỗi
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    29 liên tiếp lớn hơn so với số trước, với một lần tham chiếu
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    30 xuất hiện cuối cùng trong danh sách.

  • Các cột phạm vi (________ 693)

    Biến thể này trên

    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    20 tạo điều kiện cho việc cắt tỉa phân vùng cho các truy vấn sử dụng các điều kiện phạm vi trên nhiều cột (nghĩa là có các điều kiện như
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    33 hoặc
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    34). Nó cho phép bạn chỉ định phạm vi giá trị trong nhiều cột bằng cách sử dụng danh sách các cột trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35 và một tập hợp các giá trị cột trong mỗi mệnh đề định nghĩa phân vùng
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    36). (Trong trường hợp đơn giản nhất, tập hợp này bao gồm một cột duy nhất.) Số lượng cột tối đa có thể được tham chiếu trong
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    93 và
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    38 là 16.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    93 được sử dụng trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35 chỉ có thể chứa tên của các cột; Mỗi cột trong danh sách phải là một trong các loại dữ liệu MySQL sau: các loại số nguyên; các loại chuỗi; và các loại cột thời gian hoặc ngày. Các cột sử dụng
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    1,
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    2,
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    9,
    SELECT * FROM tbl_name WHERE auto_col IS NULL
    8,
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    45 hoặc các loại dữ liệu không gian không được phép; Các cột sử dụng các loại số điểm nổi cũng không được phép. Bạn cũng không được sử dụng các hàm hoặc biểu thức số học trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35.

    Mệnh đề

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 được sử dụng trong định nghĩa phân vùng phải chỉ định giá trị theo nghĩa đen cho mỗi cột xuất hiện trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    48; nghĩa là, danh sách các giá trị được sử dụng cho mỗi mệnh đề
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 phải chứa cùng số lượng giá trị như có các cột được liệt kê trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35. Một nỗ lực sử dụng nhiều hoặc ít giá trị hơn trong mệnh đề
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 so với trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35 khiến câu lệnh không thành công với sự không nhất quán trong việc sử dụng danh sách cột để phân vùng .... bạn không thể sử dụng
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 cho bất kỳ giá trị nào xuất hiện trong
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84. Có thể sử dụng
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    30 nhiều hơn một lần cho một cột nhất định khác với đầu tiên, như trong ví dụ này:Inconsistency in usage of column lists for partitioning.... You cannot use
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0 for any value appearing in
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84. It is possible to use
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    30 more than once for a given column other than the first, as shown in this example:

    CREATE TABLE new_tbl LIKE orig_tbl;
    9

    Mỗi giá trị được sử dụng trong danh sách giá trị

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 phải khớp với loại cột tương ứng chính xác; Không có chuyển đổi được thực hiện. Ví dụ: bạn không thể sử dụng chuỗi
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    57 cho một giá trị phù hợp với cột sử dụng loại số nguyên (bạn phải sử dụng số
    CREATE TABLE new_tbl LIKE orig_tbl;
    18 thay thế), bạn cũng không thể sử dụng số
    CREATE TABLE new_tbl LIKE orig_tbl;
    18 cho giá trị khớp với cột sử dụng loại chuỗi (Trong trường hợp như vậy, bạn phải sử dụng chuỗi được trích dẫn:
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    57).

    Để biết thêm thông tin, hãy xem Phần & NBSP; 24.2.1, Phân vùng Phạm vi và Phần & NBSP; 24.4, Phân vùng cắt tỉa.

  • LIST(

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    84)

    Điều này rất hữu ích khi gán các phân vùng dựa trên cột bảng với một tập hợp các giá trị có thể hạn chế, chẳng hạn như mã trạng thái hoặc quốc gia. Trong trường hợp như vậy, tất cả các hàng liên quan đến một tiểu bang hoặc quốc gia nhất định có thể được chỉ định cho một phân vùng duy nhất hoặc một phân vùng có thể được dành riêng cho một tập hợp các tiểu bang hoặc quốc gia nhất định. Nó tương tự như

    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    20, ngoại trừ chỉ có thể sử dụng
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    63 để chỉ định các giá trị cho phép cho từng phân vùng.

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 được sử dụng với danh sách các giá trị được khớp. Chẳng hạn, bạn có thể tạo một sơ đồ phân vùng như sau:

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    0

    Khi sử dụng phân vùng danh sách, bạn phải xác định ít nhất một phân vùng bằng cách sử dụng

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85. Bạn không thể sử dụng
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    84 với
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    67.

    Ghi chú

    Đối với các bảng được phân vùng bởi

    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    68, danh sách giá trị được sử dụng với
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 phải chỉ bao gồm các giá trị số nguyên. Trong MySQL 8.0, bạn có thể khắc phục giới hạn này bằng cách sử dụng phân vùng bởi
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    70, được mô tả sau trong phần này.

  • Danh sách cột (________ 693)

    Biến thể này trên

    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    68 tạo điều kiện cho việc cắt tỉa phân vùng cho các truy vấn sử dụng các điều kiện so sánh trên nhiều cột (nghĩa là có các điều kiện như
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    73 hoặc
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    74). Nó cho phép bạn chỉ định các giá trị trong nhiều cột bằng cách sử dụng danh sách các cột trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35 và một tập hợp các giá trị cột trong mỗi phân vùng ... giá trị trong (
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    38) mệnh đề định nghĩa phân vùng.PARTITION ... VALUES IN (
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    38)
    partition definition clause.

    Các quy tắc quản lý các loại dữ liệu cho danh sách cột được sử dụng trong các cột danh sách (____ ____ 693) và danh sách giá trị được sử dụng trong các giá trị trong (____ 738) giống như các danh sách được sử dụng trong các cột phạm vi (________ 693) và danh sách giá trị được sử dụng trong Các giá trị nhỏ hơn (____ 738), tương ứng, ngoại trừ trong mệnh đề

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85,
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    30 không được phép và bạn có thể sử dụng
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0.LIST COLUMNS(
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    93)
    and the value list used in VALUES IN(
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    38)
    are the same as those for the column list used in RANGE COLUMNS(
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    93)
    and the value list used in VALUES LESS THAN(
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    38)
    , respectively, except that in the
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 clause,
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    30 is not permitted, and you may use
    CREATE TABLE t1 (
        c1 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
        c2 VARCHAR(100),
        c3 VARCHAR(100) )
    ENGINE=NDB
    COMMENT="NDB_TABLE=READ_BACKUP=0,PARTITION_BALANCE=FOR_RP_BY_NODE";
    0.

    Có một sự khác biệt quan trọng giữa danh sách các giá trị được sử dụng cho

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 với
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    85 trái ngược với khi nó được sử dụng với
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    86. Khi được sử dụng với
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    87, mỗi phần tử trong mệnh đề
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    85 phải là một tập hợp các giá trị cột; Số lượng giá trị trong mỗi tập hợp phải giống với số lượng cột được sử dụng trong mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35 và các loại dữ liệu của các giá trị này phải khớp với các cột của các cột (và xảy ra theo cùng một thứ tự). Trong trường hợp đơn giản nhất, tập hợp bao gồm một cột duy nhất. Số lượng cột tối đa có thể được sử dụng trong
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    93 và trong các yếu tố tạo thành
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    38 là 16.set of column values; the number of values in each set must be the same as the number of columns used in the
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    35 clause, and the data types of these values must match those of the columns (and occur in the same order). In the simplest case, the set consists of a single column. The maximum number of columns that can be used in the
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    93 and in the elements making up the
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    38 is 16.

    Bảng được xác định bởi câu lệnh

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    24 sau đây cung cấp một ví dụ về bảng bằng cách sử dụng phân vùng
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    93:

    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    1
  • Phân vùng

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76

    Số lượng phân vùng có thể tùy chọn được chỉ định với mệnh đề phân vùng

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76, trong đó
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76 là số lượng phân vùng. Nếu cả mệnh đề này và bất kỳ mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    97 nào được sử dụng,
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76 phải bằng tổng số phân vùng được khai báo bằng các mệnh đề
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    97.PARTITIONS
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76
    clause, where
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76 is the number of partitions. If both this clause and any
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    97 clauses are used,
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    76 must be equal to the total number of any partitions that are declared using
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    97 clauses.

    Ghi chú

    Cho dù bạn có sử dụng mệnh đề

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    00 trong việc tạo bảng được phân vùng bởi
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    20 hoặc
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    68, bạn vẫn phải bao gồm ít nhất một mệnh đề
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    03 trong định nghĩa bảng (xem bên dưới).

  • CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    04

    Một phân vùng có thể tùy chọn được chia thành một số phần con. Điều này có thể được chỉ định bằng cách sử dụng mệnh đề

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    04 tùy chọn. Phân chia có thể được thực hiện bởi
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    92 hoặc
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25. Một trong những điều này có thể là
    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    89. Chúng hoạt động theo cùng một cách như được mô tả trước đây cho các loại phân vùng tương đương. (Không thể phân chia theo
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    68 hoặc
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    20.)

    Số lượng các phần con có thể được chỉ định bằng cách sử dụng từ khóa

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    11 theo sau là giá trị số nguyên.

  • Kiểm tra nghiêm ngặt giá trị được sử dụng trong các điều khoản

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    00 hoặc
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    11 được áp dụng và giá trị này phải tuân thủ các quy tắc sau:

    • Giá trị phải là một số nguyên dương, khác nhau.

    • Không có số không hàng đầu được phép.

    • Giá trị phải là một số nguyên theo nghĩa đen và không thể là một biểu thức. Ví dụ,

      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      14 không được phép, mặc dù
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      15 đánh giá thành
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      16. (Lỗi #15890)

  • CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    17

    Mỗi phân vùng có thể được xác định riêng lẻ bằng mệnh đề

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    18. Các bộ phận riêng lẻ tạo ra mệnh đề này như sau:

    • CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      19

      Chỉ định một tên hợp lý cho phân vùng.

    • CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      20

      Đối với phân vùng phạm vi, mỗi phân vùng phải bao gồm mệnh đề

      CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
      84; Để phân vùng danh sách, bạn phải chỉ định mệnh đề
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      22 cho mỗi phân vùng. Điều này được sử dụng để xác định các hàng nào sẽ được lưu trữ trong phân vùng này. Xem các cuộc thảo luận về các loại phân vùng trong Chương & NBSP; 24, Phân vùng, để biết các ví dụ cú pháp.

    • CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      23

      MySQL chấp nhận tùy chọn

      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      23 cho cả
      mysql> CREATE TABLE t1 (
          ->     c1 INT STORAGE DISK,
          ->     c2 INT STORAGE MEMORY
          -> ) ENGINE NDB;
      ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
      
      mysql> CREATE TABLE t1 (
          ->     c1 INT STORAGE DISK,
          ->     c2 INT STORAGE MEMORY
          -> ) TABLESPACE ts_1 ENGINE NDB;
      Query OK, 0 rows affected (1.06 sec)
      97 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      26. Hiện tại, cách duy nhất để tùy chọn này có thể được sử dụng là đặt tất cả các phân vùng hoặc tất cả các phần con cho cùng một công cụ lưu trữ và cố gắng đặt các công cụ lưu trữ khác nhau cho các phân vùng hoặc phân vùng trong cùng một bảng làm tăng lỗi lỗi 1469 (HY000) : Sự kết hợp của các trình xử lý trong các phân vùng không được phép trong phiên bản MySQL này.ERROR 1469 (HY000): The mix of handlers in the partitions is not permitted in this version of MySQL.

    • CREATE TABLE new_tbl LIKE orig_tbl;
      38

      Một mệnh đề

      CREATE TABLE new_tbl LIKE orig_tbl;
      38 tùy chọn có thể được sử dụng để chỉ định một chuỗi mô tả phân vùng. Thí dụ:

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      2

      Độ dài tối đa cho một nhận xét phân vùng là 1024 ký tự.

    • CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      37 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      30

      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      37 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      30 có thể được sử dụng để chỉ ra thư mục trong đó, tương ứng, dữ liệu và chỉ mục cho phân vùng này sẽ được lưu trữ. Cả
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      33 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      34 phải là tên đường dẫn hệ thống tuyệt đối.

      Kể từ MySQL 8.0.21, thư mục được chỉ định trong mệnh đề

      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      37 phải được biết đến
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7. Để biết thêm thông tin, hãy xem bằng cách sử dụng mệnh đề thư mục dữ liệu.

      Bạn phải có đặc quyền

      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      52 để sử dụng tùy chọn phân vùng
      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      37 hoặc
      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      54.

      Thí dụ:

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      3

      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      37 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      30 hoạt động theo cách tương tự như trong Điều khoản
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      43 của câu lệnh
      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      5 như được sử dụng cho các bảng
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      3.

      Một thư mục dữ liệu và một thư mục chỉ mục có thể được chỉ định trên mỗi phân vùng. Nếu không được xác định, dữ liệu và chỉ mục được lưu trữ theo mặc định trong thư mục cơ sở dữ liệu của bảng.

      Các tùy chọn

      CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
      37 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      30 bị bỏ qua để tạo các bảng được phân vùng nếu
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      47 có hiệu lực.

    • CREATE TABLE t (c CHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin);
      94 và
      SELECT * FROM tbl_name WHERE auto_col IS NULL
      49

      Có thể được sử dụng để chỉ định, tương ứng, số lượng hàng tối đa và tối thiểu sẽ được lưu trữ trong phân vùng. Các giá trị cho

      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      50 và
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      51 phải là số nguyên dương. Như với các tùy chọn cấp bảng có cùng tên, những người này chỉ hoạt động như các đề xuất của Cameron đối với máy chủ và không phải là giới hạn khó khăn.suggestions to the server and are not hard limits.

    • CREATE TABLE new_tbl LIKE orig_tbl;
      75

      Có thể được sử dụng để chỉ định một không gian bảng

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 cho mỗi bảng cho phân vùng bằng cách chỉ định
      CREATE TABLE lookup
        (id INT, INDEX USING BTREE (id))
        ENGINE = MEMORY;
      54. Tất cả các phân vùng phải thuộc về cùng một công cụ lưu trữ.

      Đặt các phân vùng bảng ____27 trong các không gian bảng được chia sẻ ____27 không được hỗ trợ. Không gian bảng chia sẻ bao gồm không gian bảng hệ thống

      CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
      7 và không gian bảng chung.

  • CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    58

    Định nghĩa phân vùng có thể tùy chọn chứa một hoặc nhiều mệnh đề

    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    59. Mỗi trong số này bao gồm ở mức tối thiểu của
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    60, trong đó
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    61 là một định danh cho phần phụ. Ngoại trừ việc thay thế từ khóa
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    97 bằng
    CREATE TABLE lookup
      (id INT, INDEX USING BTREE (id))
      ENGINE = MEMORY;
    26, cú pháp cho một định nghĩa phân nhóm là giống hệt với định nghĩa phân vùng.

    Phân chia phải được thực hiện bởi

    CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
    92 hoặc
    CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
    25 và chỉ có thể được thực hiện trên các phân vùng
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    20 hoặc
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) ENGINE NDB;
    ERROR 1005 (HY000): Can't create table 'c.t1' (errno: 140)
    
    mysql> CREATE TABLE t1 (
        ->     c1 INT STORAGE DISK,
        ->     c2 INT STORAGE MEMORY
        -> ) TABLESPACE ts_1 ENGINE NDB;
    Query OK, 0 rows affected (1.06 sec)
    68. Xem Phần & NBSP; 24.2.6, Subpartitioning.

Phân vùng theo các cột được tạo

Phân vùng theo các cột được tạo được cho phép. Ví dụ:

CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
4

Phân vùng coi một cột được tạo là một cột thông thường, cho phép giải quyết các hạn chế về các chức năng không được phép phân vùng (xem Phần & NBSP; 24.6.3, giới hạn phân vùng liên quan đến các chức năng). Ví dụ trước cho thấy kỹ thuật này:

CREATE TABLE lookup
  (id INT, INDEX USING BTREE (id))
  ENGINE = MEMORY;
68 không thể được sử dụng trực tiếp trong mệnh đề
CREATE TABLE t1 (c1 INT ENGINE_ATTRIBUTE='{"key":"value"}');
73, nhưng một cột được tạo được xác định bằng cách sử dụng
CREATE TABLE lookup
  (id INT, INDEX USING BTREE (id))
  ENGINE = MEMORY;
68 được cho phép.

Chúng ta có thể tạo một bảng bao nhiêu cách?

Bảy cách để tạo bảng Microsoft hiện cung cấp năm phương thức khác nhau để tạo bảng: lưới đồ họa, bảng chèn, bảng vẽ, chèn bảng bảng tính Excel mới hoặc hiện có và bảng nhanh, cộng với tùy chọn chuyển đổi văn bản hiện có thành bảng. ways to create tables Microsoft now provides five different methods for creating tables: the Graphic Grid, Insert Table, Draw Table, insert a new or existing Excel Spreadsheet table, and Quick Tables, plus an option for converting existing text into a table.

Chúng ta có thể tạo bao nhiêu bảng trong MySQL?

MySQL không có giới hạn về số lượng bảng.Hệ thống tệp cơ bản có thể có giới hạn về số lượng tệp đại diện cho các bảng.Động cơ lưu trữ cá nhân có thể áp đặt các ràng buộc cụ thể của động cơ.Innodb cho phép lên tới 4 tỷ bảng.no limit on the number of tables. The underlying file system may have a limit on the number of files that represent tables. Individual storage engines may impose engine-specific constraints. InnoDB permits up to 4 billion tables.

Làm thế nào chúng ta có thể tạo bảng trong MySQL?

Sử dụng một câu lệnh CREATE TABLE để chỉ định bố cục của bảng của bạn: mysql> Tạo bảng PET (Tên Varchar (20), Chủ sở hữu Varchar (20), Varchar (20), Sex Char (1), ngày sinh, ngày tử vong);Varchar là một lựa chọn tốt cho các cột tên, chủ sở hữu và loài vì các giá trị cột khác nhau về chiều dài.: mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20), species VARCHAR(20), sex CHAR(1), birth DATE, death DATE); VARCHAR is a good choice for the name , owner , and species columns because the column values vary in length.

Có bao nhiêu cách tạo bảng trong DBMS?

Người dùng có thể tạo một bảng cơ sở dữ liệu theo hai cách.1. Cách tiếp cận từ trên xuống dưới: Trong phương pháp này, các trường đầu tiên được xác định và phần tử dữ liệu và miền sau này được xác định.two ways. 1. Top-to-bottom approach: In this approach, first fields are defined and later domain and data element are defined.