Bao gồm cả MySQL NDB Cụm 8.0
trừu tượng
Đây là hướng dẫn tham khảo MySQL. Nó ghi lại MySQL 8.0 đến 8.0.32, cũng như các bản phát hành cụm NDB dựa trên phiên bản 8.0 của
CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 đến 8.0.32-NDB-8.0.32, tương ứng. Nó có thể bao gồm tài liệu về các tính năng của các phiên bản MySQL chưa được phát hành. Để biết thông tin về phiên bản nào đã được phát hành, hãy xem Ghi chú phát hành MySQL 8.0.Các tính năng MySQL 8.0. & NBSP; Hướng dẫn này mô tả các tính năng không được bao gồm trong mỗi phiên bản của MySQL 8.0; Các tính năng như vậy có thể không được bao gồm trong phiên bản của MySQL 8.0 được cấp phép cho bạn. Nếu bạn có bất kỳ câu hỏi nào về các tính năng được bao gồm trong phiên bản MySQL 8.0 của bạn, hãy tham khảo Thỏa thuận cấp phép MySQL 8.0 của bạn hoặc liên hệ với Đại diện Bán hàng Oracle của bạn. This manual describes features that are not included in every edition of MySQL 8.0; such features may not be included in the edition of MySQL 8.0 licensed to you. If you have any questions about the features included in your edition of MySQL 8.0, refer to your MySQL 8.0 license agreement or contact your Oracle sales representative.
Để ghi chú chi tiết các thay đổi trong mỗi bản phát hành, hãy xem Ghi chú phát hành MySQL 8.0.
Để biết thông tin pháp lý, bao gồm thông tin cấp phép, hãy xem lời nói đầu và thông báo pháp lý.
Để được giúp đỡ trong việc sử dụng MySQL, vui lòng truy cập diễn đàn MySQL, nơi bạn có thể thảo luận về các vấn đề của mình với người dùng MySQL khác.
Tài liệu được tạo vào ngày: 2022-10-21 [Sửa đổi: 74377]
Bao gồm cụm MySQL NDB 7.5 và NDB 7.6
trừu tượng
Đây là hướng dẫn tham khảo MySQL. Nó ghi lại MySQL 5.7 đến 5.7,41, cũng như các bản phát hành cụm NDB dựa trên phiên bản 7.5 của
CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 đến 5.7.40-NDB-7.5.29, tương ứng. Nó có thể bao gồm tài liệu về các tính năng của các phiên bản MySQL chưa được phát hành. Để biết thông tin về phiên bản nào đã được phát hành, hãy xem Ghi chú phát hành MySQL 5.7.Các tính năng MySQL 5.7. & NBSP; Hướng dẫn này mô tả các tính năng không được bao gồm trong mỗi phiên bản của MySQL 5.7; Các tính năng như vậy có thể không được bao gồm trong phiên bản MySQL 5.7 được cấp phép cho bạn. Nếu bạn có bất kỳ câu hỏi nào về các tính năng có trong phiên bản MySQL 5.7 của bạn, hãy tham khảo Thỏa thuận cấp phép MySQL 5.7 của bạn hoặc liên hệ với Đại diện Bán hàng Oracle của bạn. This manual describes features that are not included in every edition of MySQL 5.7; such features may not be included in the edition of MySQL 5.7 licensed to you. If you have any questions about the features included in your edition of MySQL 5.7, refer to your MySQL 5.7 license agreement or contact your Oracle sales representative.
Để ghi chú chi tiết các thay đổi trong mỗi bản phát hành, hãy xem Ghi chú phát hành MySQL 5.7.
Để biết thông tin pháp lý, bao gồm thông tin cấp phép, hãy xem lời nói đầu và thông báo pháp lý.
Để được giúp đỡ trong việc sử dụng MySQL, vui lòng truy cập diễn đàn MySQL, nơi bạn có thể thảo luận về các vấn đề của mình với người dùng MySQL khác.
Tài liệu được tạo vào ngày: 2022-10-20 [Sửa đổi: 74374]
trừu tượng
Đây là hướng dẫn tham khảo Workbench MySQL. Nó tài liệu cho cộng đồng MySQL Workbench và MySQL Workbench phát hành thương mại cho các phiên bản 8.0 đến 8.0.31.
Nếu bạn chưa cài đặt bản phát hành cộng đồng MySQL Workbench, vui lòng tải xuống bản sao miễn phí của bạn từ trang web tải xuống. Bản phát hành cộng đồng MySQL Workbench có sẵn cho Microsoft Windows, MacOS và Linux.
Nền tảng Workbench MySQL phát triển theo thời gian. Để biết thông tin hỗ trợ nền tảng mới nhất, xem //www.mysql.com/support/supportedplatforms/workbench.html.
Để ghi chú chi tiết các thay đổi trong mỗi bản phát hành, hãy xem Ghi chú phát hành Workbench MySQL.
Để biết thông tin pháp lý, bao gồm thông tin cấp phép, hãy xem lời nói đầu và thông báo pháp lý.
Để được giúp đỡ trong việc sử dụng MySQL, vui lòng truy cập diễn đàn MySQL, nơi bạn có thể thảo luận về các vấn đề của mình với người dùng MySQL khác.
Tài liệu được tạo vào ngày: 2022-10-13 [Sửa đổi: 74334]
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;
7 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;
8 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;
9. 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;
9 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 t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
1, đượ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
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 đồ.
6CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Ngăn chặn một lỗi xảy ra nếu bảng tồn tại. Tuy nhiên, không có xác minh rằng bảng hiện tại có cấu trúc giống hệt với câu nói được biểu thị bằng câu lệnh
7.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Bảng tạm thời
Bạn có thể sử dụng từ khóa
CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
8 khi tạo bảng. Một bảng CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
8 chỉ hiển thị trong phiên hiện tại và tự động bị hủy khi phiên được đóng. Để biết thêm thông tin, xem Phần & NBSP; 13.1.20.2, Tạo Tuyên bố bảng tạm thời.Nhân bản bảng và sao chép
0CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Sử dụng
1 để tạo một bảng trống dựa trên định nghĩa của một bảng khác, bao gồm bất kỳ thuộc tính và chỉ mục cột nào được xác định trong bảng gốc:CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
CREATE TABLE new_tbl LIKE orig_tbl;
Để biết thêm thông tin, xem Phần & NBSP; 13.1.20.3, Tạo bảng ... giống như câu lệnh.
2CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Để tạo một bảng từ một bảng khác, hãy thêm câu lệnh
3 ở cuối câu lệnhCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
7:CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Để biết thêm thông tin, xem Phần & NBSP; 13.1.20.4, Bảng Tạo bảng ... Chọn câu lệnh.
5CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Các tùy chọn
6 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
7 cho biết cách xử lý các hàng sao chép các giá trị khóa duy nhất khi sao chép bảng bằng câu lệnhCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
3.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Để biết thêm thông tin, xem Phần & NBSP; 13.1.20.4, Bảng Tạo bảng ... Chọn câu lệnh.
CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5
CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Các tùy chọn
CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
6 và CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
7 cho biết cách xử lý các hàng sao chép các giá trị khóa duy nhất khi sao chép bảng bằng câu lệnh CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
3.Kiểu dữ liệu và thuộc tính cột
Có giới hạn cứng là 4096 cột trên mỗi bảng, nhưng mức tối đa hiệu quả có thể ít hơn đối với một bảng nhất định và phụ thuộc vào các yếu tố được thảo luận trong Phần & NBSP; 8.4.7, giới hạn về số lượng bảng và kích thước hàng.
9CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
0 đại diện cho loại dữ liệu trong một định nghĩa cột. Để biết mô tả đầy đủ về cú pháp có sẵn để chỉ định các loại dữ liệu cột, cũng như thông tin về các thuộc tính của từng loại, xem Chương & NBSP; 11, các loại dữ liệu.SELECT * FROM tbl_name WHERE auto_col IS NULL
CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Một số thuộc tính không áp dụng cho tất cả các loại dữ liệu.
1 chỉ áp dụng cho các loại số nguyên và dấu phẩy động. Trước MySQL 8.0.13,SELECT * FROM tbl_name WHERE auto_col IS NULL
2 không áp dụng cho các loạiSELECT * FROM tbl_name WHERE auto_col IS NULL
3,SELECT * FROM tbl_name WHERE auto_col IS NULL
4,SELECT * FROM tbl_name WHERE auto_col IS NULL
5 vàSELECT * FROM tbl_name WHERE auto_col IS NULL
6.SELECT * FROM tbl_name WHERE auto_col IS NULL
Các loại dữ liệu ký tự [
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8, các loạiSELECT * FROM tbl_name WHERE auto_col IS NULL
4,SELECT * FROM tbl_name WHERE auto_col IS NULL
0,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
1 và bất kỳ từ đồng nghĩa nào] có thể bao gồmCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
2 để chỉ định bộ ký tự cho cột.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
3 là một từ đồng nghĩa vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
2. Một đối chiếu cho bộ ký tự có thể được chỉ định với thuộc tínhCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
5, cùng với bất kỳ thuộc tính nào khác. Để biết chi tiết, xem Chương & NBSP; 10, bộ ký tự, đối chiếu, Unicode. Thí dụ:must 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 firstCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
3 characters of each column value formysql> 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]
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8, andSELECT * FROM tbl_name WHERE auto_col IS NULL
4 columns, and the firstSELECT * FROM tbl_name WHERE auto_col IS NULL
3 bytes of each column value formysql> 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]
6,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
7, andCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
3 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”.SELECT * FROM tbl_name WHERE auto_col IS NULL
MySQL 8.0 diễn giải các thông số kỹ thuật độ dài trong định nghĩa cột ký tự trong các ký tự. Độ dài cho
6 vàCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
7 là trong byte.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Đối với các cột
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8,SELECT * FROM tbl_name WHERE auto_col IS NULL
6 vàCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
7, các chỉ mục có thể được tạo chỉ sử dụng phần hàng đầu của các giá trị cột, sử dụng cú pháp ____ 72 [____ 73] để chỉ định độ dài tiền tố chỉ mục. Các cộtCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
3 vàSELECT * FROM tbl_name WHERE auto_col IS NULL
4 cũng có thể được lập chỉ mục, nhưng phải có độ dài tiền tố. Độ dài tiền tố được đưa ra trong các ký tự cho các loại chuỗi không phân biệt và trong byte cho các loại chuỗi nhị phân. Nghĩa là các mục nhập chỉ mục bao gồm các ký tựSELECT * FROM tbl_name WHERE auto_col IS NULL
3 đầu tiên của mỗi giá trị cột cho các cộtmysql> 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]
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8 vàSELECT * FROM tbl_name WHERE auto_col IS NULL
4 và các byteSELECT * FROM tbl_name WHERE auto_col IS NULL
3 đầu tiên của mỗi giá trị cột cho các cộtmysql> 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]
6,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
7 vàCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
3. Chỉ lập chỉ mục một tiền tố của các giá trị cột như thế này có thể làm cho tệp chỉ mục nhỏ hơn nhiều. Để biết thêm thông tin về tiền tố chỉ mục, hãy xem Phần & NBSP; 13.1.15, Tuyên bố Tạo Chỉ số.SELECT * FROM tbl_name WHERE auto_col IS NULL
Chỉ các công cụ lưu trữ
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 hỗ trợ lập chỉ mục trên các cộtCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
3 vàSELECT * FROM tbl_name WHERE auto_col IS NULL
4. Ví dụ:SELECT * FROM tbl_name WHERE auto_col IS NULL
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,
8 xử lý chỉ mục như sau:CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Đố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.
6 Cột 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ộtSELECT * FROM tbl_name WHERE auto_col IS NULL
6. 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.SELECT * FROM tbl_name WHERE auto_col IS NULL
1CREATE 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";
2SELECT * FROM tbl_name WHERE auto_col IS NULL
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ị
2 rõ ràng, xem Phần & NBSP; 11.6, Kiểu dữ liệu Giá trị mặc định.SELECT * FROM tbl_name WHERE auto_col IS NULL
Nếu chế độ
02 hoặcCREATE TABLE new_tbl LIKE orig_tbl;
03 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 LIKE orig_tbl;
7 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ớiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
03 được bật,CREATE TABLE new_tbl LIKE orig_tbl;
06 tạo ra một cảnh báo.CREATE TABLE new_tbl LIKE orig_tbl;
07,CREATE TABLE new_tbl LIKE orig_tbl;
08CREATE TABLE new_tbl LIKE orig_tbl;
Chỉ định khả năng hiển thị cột. Mặc định là
07 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.CREATE TABLE new_tbl LIKE orig_tbl;
Các từ khóa
07 vàCREATE TABLE new_tbl LIKE orig_tbl;
08 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 new_tbl LIKE orig_tbl;
1SELECT * FROM tbl_name WHERE auto_col IS NULL
Một cột số nguyên hoặc dấu phẩy động có thể có thuộc tính bổ sung
1. Khi bạn chèn giá trịSELECT * FROM tbl_name WHERE auto_col IS NULL
2 [được đề xuất] hoặcCREATE 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";
15 vào cộtCREATE TABLE new_tbl LIKE orig_tbl;
1 đượ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à ________ 117+1, trong đóSELECT * FROM tbl_name WHERE auto_col IS NULL
18 là giá trị lớn nhất cho cột hiện tại trong bảng. Trình tựCREATE TABLE new_tbl LIKE orig_tbl;
1 bắt đầu vớiSELECT * FROM tbl_name WHERE auto_col IS NULL
20.CREATE TABLE new_tbl LIKE orig_tbl;
Để truy xuất giá trị
1 sau khi chèn một hàng, hãy sử dụng hàmSELECT * FROM tbl_name WHERE auto_col IS NULL
22 SQL hoặc hàm APICREATE TABLE new_tbl LIKE orig_tbl;
23 C. Xem phần & nbsp; 12.16, các chức năng thông tin trực tuyến và mysql_insert_id [].CREATE TABLE new_tbl LIKE orig_tbl;
Nếu chế độ
24 SQL được bật, bạn có thể lưu trữCREATE TABLE new_tbl LIKE orig_tbl;
15 trong các cộtCREATE TABLE new_tbl LIKE orig_tbl;
1 dưới dạngSELECT * FROM tbl_name WHERE auto_col IS NULL
15 mà không tạo ra giá trị trình tự mới. Xem Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.CREATE TABLE new_tbl LIKE orig_tbl;
Chỉ có thể có một cột
1 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
2. Một cộtSELECT * FROM tbl_name WHERE auto_col IS NULL
1 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 trên 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ộtSELECT * FROM tbl_name WHERE auto_col IS NULL
1 có chứaSELECT * FROM tbl_name WHERE auto_col IS NULL
15.“wrap” over from positive to negative and also to ensure that you do not accidentally get anCREATE TABLE new_tbl LIKE orig_tbl;
1 column that containsSELECT * FROM tbl_name WHERE auto_col IS NULL
15.CREATE TABLE new_tbl LIKE orig_tbl;
Đối với các bảng
5, bạn có thể chỉ định cột thứ cấpCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
1 trong phím nhiều cột. Xem Phần & NBSP; 3.6.9, Sử dụng Auto_increment.SELECT * FROM tbl_name WHERE auto_col IS NULL
Để 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ị
1 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
SELECT * FROM tbl_name WHERE auto_col IS NULL
Phương pháp này yêu cầu biến
36 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.CREATE TABLE new_tbl LIKE orig_tbl;
Để biết thông tin về
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
1, xem Phần & NBSP; 15.6.1.6, Xử lý Auto_increment trong Innodb. Để biết thông tin về bản saoSELECT * FROM tbl_name WHERE auto_col IS NULL
1 và MySQL, xem phần & nbsp; 17.5.1.1, sao chép và tự động_increment.SELECT * FROM tbl_name WHERE auto_col IS NULL
40CREATE TABLE new_tbl LIKE orig_tbl;
Một nhận xét cho một cột có thể được chỉ định với tùy chọn
40, dài tới 1024 ký tự. Nhận xét được hiển thị bởi các câu lệnhCREATE TABLE new_tbl LIKE orig_tbl;
42 vàCREATE TABLE new_tbl LIKE orig_tbl;
43. Nó cũng được hiển thị trong cộtCREATE TABLE new_tbl LIKE orig_tbl;
44 của bảngCREATE TABLE new_tbl LIKE orig_tbl;
45.CREATE TABLE new_tbl LIKE orig_tbl;
46CREATE TABLE new_tbl LIKE orig_tbl;
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
5 bằng cách sử dụngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
46. Các định dạng cột cho phép làCREATE TABLE new_tbl LIKE orig_tbl;
49,CREATE TABLE new_tbl LIKE orig_tbl;
50 vàCREATE TABLE new_tbl LIKE orig_tbl;
2.SELECT * FROM tbl_name WHERE auto_col IS NULL
49 được sử dụng để chỉ định lưu trữ có chiều rộng cố định,CREATE TABLE new_tbl LIKE orig_tbl;
50 cho phép cột có chiều rộng thay đổi vàCREATE TABLE new_tbl LIKE orig_tbl;
2 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ởiSELECT * FROM tbl_name WHERE auto_col IS NULL
55. .CREATE TABLE new_tbl LIKE orig_tbl;
Đối với các bảng
5, giá trị mặc định choCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
46 làCREATE TABLE new_tbl LIKE orig_tbl;
49.CREATE TABLE new_tbl LIKE orig_tbl;
Trong cụm NDB, phần bù tối đa có thể cho một cột được xác định với
59 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;
46 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ớiCREATE TABLE new_tbl LIKE orig_tbl;
5. MySQL 8.0 âm thầm bỏ quaCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
46.CREATE TABLE new_tbl LIKE orig_tbl;
Các tùy chọn
63 vàCREATE TABLE new_tbl LIKE orig_tbl;
64 [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.CREATE TABLE new_tbl LIKE orig_tbl;
Các giá trị được phép là một chuỗi theo nghĩa đen chứa một tài liệu
6 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
6 bị từ chối.SELECT * FROM tbl_name WHERE auto_col IS NULL
CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Các giá trị
63 vàCREATE TABLE new_tbl LIKE orig_tbl;
64 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.CREATE TABLE new_tbl LIKE orig_tbl;
Các giá trị
63 vàCREATE TABLE new_tbl LIKE orig_tbl;
64 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;
71CREATE TABLE new_tbl LIKE orig_tbl;
Đối với các bảng
5, 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 AS SELECT * FROM orig_tbl;
71.CREATE TABLE new_tbl LIKE orig_tbl;
74 khiến cột được lưu trữ trên đĩa vàCREATE TABLE new_tbl LIKE orig_tbl;
75 Nguyên nhân lưu trữ trong bộ nhớ được sử dụng. Tuyên bốCREATE TABLE new_tbl LIKE orig_tbl;
7 được sử dụng vẫn phải bao gồm mệnh đềCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
77:CREATE TABLE new_tbl LIKE orig_tbl;
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
5,CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
79 tương đương vớiCREATE TABLE new_tbl LIKE orig_tbl;
80.CREATE TABLE new_tbl LIKE orig_tbl;
Điều khoản
71 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àiCREATE TABLE new_tbl LIKE orig_tbl;
5. Từ khóaCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
71 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óaCREATE TABLE new_tbl LIKE orig_tbl;
71 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 theCREATE TABLE new_tbl LIKE orig_tbl;
71 keyword causes a syntax error.CREATE TABLE new_tbl LIKE orig_tbl;
85CREATE TABLE new_tbl LIKE orig_tbl;
Đượ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.
9 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
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;
87. Đố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;
88CREATE TABLE new_tbl LIKE orig_tbl;
Điều khoản
88 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ặcCREATE TABLE new_tbl LIKE orig_tbl;
90 không được bao gồm sau từ khóaCREATE TABLE new_tbl LIKE orig_tbl;
91, 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;
90, 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 saoCREATE TABLE new_tbl LIKE orig_tbl;
90 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.CREATE TABLE new_tbl LIKE orig_tbl;
Ghi chú
Nếu điều khoản ràng buộc
90 không được đưa ra trong một định nghĩa khóa nước ngoài hoặc không được đưa vào từ khóaCREATE TABLE new_tbl LIKE orig_tbl;
91, 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 đó.CREATE TABLE new_tbl LIKE orig_tbl;
CONSTRAINT
clause is not given in a foreign key definition, or a
90CREATE TABLE new_tbl LIKE orig_tbl;
90 is not included following theCREATE TABLE new_tbl LIKE orig_tbl;
91 keyword, MySQL uses the foreign key index name up to MySQL 8.0.15, and automatically generates a constraint name thereafter.CREATE TABLE new_tbl LIKE orig_tbl;
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.
97CREATE TABLE new_tbl LIKE orig_tbl;
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à
9. 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";
9, MySQL tuyên bố họ rất ngầm [và âm thầm]. Một bảng chỉ có thể có mộtCREATE 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";
97. Tên của mộtCREATE TABLE new_tbl LIKE orig_tbl;
01 luôn làCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
02, 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Nếu bạn không có
97 và một ứng dụng yêu cầuCREATE TABLE new_tbl LIKE orig_tbl;
97 trong bảng của bạn, MySQL sẽ trả về chỉ mụcCREATE TABLE new_tbl LIKE orig_tbl;
05 đầu tiên không có cộtCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
2 dưới dạngCREATE 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";
97.CREATE TABLE new_tbl LIKE orig_tbl;
Trong các bảng
9, hãy giữ ngắn gọn ____201 để 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. .CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Trong bảng được tạo, một
97 được đặt đầu tiên, theo sau là tất cả các chỉ mụcCREATE TABLE new_tbl LIKE orig_tbl;
05, 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óaCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
05 trùng lặp.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Một
97 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óaCREATE TABLE new_tbl LIKE orig_tbl;
97 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 LIKE orig_tbl;
15 riêng biệt, ...].CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Nếu một bảng có chỉ số
97 hoặcCREATE TABLE new_tbl LIKE orig_tbl;
17 bao gồm một cột duy nhất có loại số nguyên, bạn có thể sử dụngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
18 để tham khảo cột được lập chỉ mục trong các câu lệnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
3, như được mô tả trong các chỉ mục duy nhất.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Trong MySQL, tên của một
97 làCREATE TABLE new_tbl LIKE orig_tbl;
02. Đố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;
22,CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
23,CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
24] để 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ụngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
25. 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;
26CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
27 thường là từ đồng nghĩa vớiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
28. Thuộc tính khóaCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
01 cũng có thể được chỉ định là chỉCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
27 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;
05CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Chỉ số
05 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ụcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
05 cho phép nhiều giá trịCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
2 cho các cột có thể chứaCREATE 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";
2. Nếu bạn chỉ định giá trị tiền tố cho một cột trong chỉ mụcCREATE 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";
05, 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;
Nếu một bảng có chỉ số
97 hoặcCREATE TABLE new_tbl LIKE orig_tbl;
17 bao gồm một cột duy nhất có loại số nguyên, bạn có thể sử dụngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
18 để tham khảo cột được lập chỉ mục trong các câu lệnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
3, như được mô tả trong các chỉ mục duy nhất.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
41CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Chỉ mục
41 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;
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 hỗ trợ các chỉ mụcCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
41. Chúng chỉ có thể được tạo từ các cộtCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8 vàSELECT * FROM tbl_name WHERE auto_col IS NULL
4. 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 đềSELECT * FROM tbl_name WHERE auto_col IS NULL
49 có thể được chỉ định là giá trịCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
50 để 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ụcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
41.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 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 lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
54CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Bạn có thể tạo các chỉ mục
54 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ảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 và các cột được lập chỉ mục phải được khai báo làCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
3. Xem Phần & NBSP; 11.4, các loại dữ liệu không gian.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";
59CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
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
60 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
61.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Các bảng được phân vùng sử dụng công cụ lưu trữ
9 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 AS SELECT * FROM orig_tbl;
87CREATE TABLE new_tbl LIKE orig_tbl;
Điều khoản
87 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 LIKE orig_tbl;
65CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Thông số kỹ thuật
66 có thể kết thúc bằngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
67 hoặcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
68 để chỉ định xem các giá trị chỉ mục có được lưu trữ theo thứ tự tăng dần hay giảm dần hay không. Mặc định là tăng dần nếu không có trình xác định đơn hàng nào được đưa ra.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Các tiền tố, được xác định bởi thuộc tính
3, có thể dài tới 767 byte cho các bảngmysql> 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]
9 sử dụng định dạng hàngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
71 hoặcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
72. Giới hạn độ dài tiền tố là 3072 byte cho các bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 sử dụng định dạng hàngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
50 hoặcCREATE TABLE new_tbl LIKE orig_tbl;
75. Đối với bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5, giới hạn độ dài tiền tố là 1000 byte.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Giới hạn tiền tố được đo bằng byte. Tuy nhiên, độ dài tiền tố cho các thông số kỹ thuật chỉ số trong các câu lệnh
8,CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
78 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
79 được giải thích là số lượng ký tự cho các loại chuỗi không phân phối [CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8,SELECT * FROM tbl_name WHERE auto_col IS NULL
4] và số lượng byte cho các loại chuỗi nhị phân [____. Đưa nó vào tài khoản khi chỉ định độ dài tiền tố cho cột Chuỗi không sử dụng bộ ký tự Multibyte.limits are measured in bytes. However, prefix lengths for index specifications inSELECT * FROM tbl_name WHERE auto_col IS NULL
8,CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
78, andCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
79 statements are interpreted as number of characters for nonbinary string types [CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8,SELECT * FROM tbl_name WHERE auto_col IS NULL
4] and number of bytes for binary string types [SELECT * FROM tbl_name WHERE auto_col IS NULL
6,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
7,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
3]. Take this into account when specifying a prefix length for a nonbinary string column that uses a multibyte character set.SELECT * FROM tbl_name WHERE auto_col IS NULL
Bắt đầu với MySQL 8.0.17,
86 cho thông số kỹ thuậtCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
66 có thể lấy mẫuCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
88 dưới dạng mảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
89] để tạo chỉ mục đa giá trị trên cộtCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
6. Các chỉ mục đa giá trị, cung cấp thông tin chi tiết về việc tạo, sử dụng, và các hạn chế và hạn chế đối với các chỉ mục đa giá trị.SELECT * FROM tbl_name WHERE auto_col IS NULL
91CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
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
92 làCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
93.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Thí dụ:
CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Vị trí ưa thích cho
94 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;
50CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
50 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;
97CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đối với các bảng
5,CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
97 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;
97 được chỉ định cho một định nghĩa chỉ số riêng lẻ ghi đè giá trị cấp bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Để biết thông tin về thuộc tính
97 cấp bảng, hãy xem các tùy chọn bảng.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
49CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Tùy chọn
49 chỉ có thể được sử dụng với các chỉ mụcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
41. 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;
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 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ảngCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
5 với plugin 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ànhCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
9 bằng cách sử dụngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
78.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
40CREATE TABLE new_tbl LIKE orig_tbl;
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ị
9CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
13 cho một chỉ mục riêng lẻ bằng mệnh đềCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
50CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
40. 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 LIKE orig_tbl;
50CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
40 clause. See Section 15.8.11, “Configuring the Merge Threshold for Index Pages”.CREATE TABLE new_tbl LIKE orig_tbl;
07,CREATE TABLE new_tbl LIKE orig_tbl;
08CREATE TABLE new_tbl LIKE orig_tbl;
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
63 vàCREATE TABLE new_tbl LIKE orig_tbl;
64 [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.CREATE TABLE new_tbl LIKE orig_tbl;
Để biết thêm thông tin về các giá trị
50 cho phép, hãy 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;
60CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đối với các chi tiết và ví dụ về cú pháp
60, xem phần & nbsp; 13.1.20.5, các ràng buộc khóa nước ngoài.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Bảng
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 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 độngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
25 vàCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
26 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.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Đố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
59 trong các câu lệnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
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
9, nhận ra hoặc thực thi mệnh đềCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
30 đượ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];
30 rõ ràng không có hiệu ứng được chỉ định và cũng gây ra các điều khoảnCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
32 vàCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
26 bị bỏ qua. Vì những lý do này, nên tránhCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
30.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Điều khoản
30 trong tiêu chuẩn SQL kiểm soát cách thức các giá trịCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
2 trong khóa nước ngoài tổng hợp [nhiều cột] được xử lý khi so sánh với khóa chính.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";
9 về cơ bản thực hiện các ngữ nghĩa được xác định bởiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
38, cho phép khóa nước ngoài là tất cả hoặc một phầnCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
2. 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.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";
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,
9 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áoCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
05 hoặcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
42. 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 t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
2 không được xác định rõ cho các hoạt động như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";
44 hoặcCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
45. 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 t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
05 [hoặcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
02] vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
42.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
MySQL phân tích cú pháp nhưng bỏ qua các thông số kỹ thuật ____349 [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
49 khi được chỉ định là một phần của đặc tảCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
59 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.“inlineCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
49 specifications” [as defined in the SQL standard] where the references are defined as part of the column specification. MySQL acceptsCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
49 clauses only when specified as part of a separateCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
59 specification. For more information, see Section 1.7.2.3, “FOREIGN KEY Constraint Differences”.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
61CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Để biết thông tin về
53,CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
54,CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
55,CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
56 vàCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
57, xem Phần & NBSP; 13.1.20.5, các ràng buộc chính của nước ngoài.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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];
58 để chuyển đổi bảng để sử dụng một công cụ lưu trữ khác.
59CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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
60 được công nhận nhưng bị bỏ qua.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Công cụ lưu trữSự mô tả
9CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
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
9.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
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.
7CREATE 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";
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ớ.
65CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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.
66CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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ữ.
67CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Một động cơ ví dụ. Xem Phần & NBSP; 16.9, Từ The Vication Storage Engine.
68CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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.
69CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Đây là một từ đồng nghĩa với
7.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";
71CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Một bộ sưu tập các bảng
5 được sử dụng làm một bảng. Còn được gọi làCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
73. Xem Phần & NBSP; 16.7, Công cụ lưu trữ hợp nhất.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
5CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
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à
75. Xem Chương & NBSP; 23, MySQL NDB Cụm 8.0.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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
76 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 t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
9, là giá trị mặc định cho biến hệ thốngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
78. KhiCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
76 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];
80CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Xác định số lượng mà
9 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 new_tbl AS SELECT * FROM orig_tbl;
-
1SELECT * FROM tbl_name WHERE auto_col IS NULL
Giá trị
1 ban đầu cho bảng. Trong MySQL 8.0, điều này hoạt động cho các bảngSELECT * FROM tbl_name WHERE auto_col IS NULL
5,CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
7,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";
9 vàCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
66. Để đặt giá trị tự động đầu tiên cho các công cụ không hỗ trợ tùy chọn bảngCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
1, 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.SELECT * FROM tbl_name WHERE auto_col IS NULL
Đối với các công cụ hỗ trợ tùy chọn bảng
1 trong các câu lệnhSELECT * FROM tbl_name WHERE auto_col IS NULL
7, bạn cũng có thể sử dụngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
91 auto_increment =CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
92 để đặt lại giá trịCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
1. Giá trị không thể được đặt thấp hơn giá trị tối đa hiện tại trong cột.SELECT * FROM tbl_name WHERE auto_col IS NULL
94CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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
5, MySQL sử dụng sản phẩm của các tùy chọnCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
96 vàCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
94 để quyết định bảng kết quả lớn như thế nào. Nếu bạn không chỉ định tùy chọn, kích thước tối đa cho dữ liệu và tệp chỉ mụcCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
5 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ốngCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
99. . 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];
00CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Chỉ định một bộ ký tự mặc định cho bảng.
3 là một từ đồng nghĩa vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
02. Nếu tên bộ ký tự làCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
2, bộ ký tự cơ sở dữ liệu được sử dụng.SELECT * FROM tbl_name WHERE auto_col IS NULL
04CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Đặ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ố
05 báo cáo tổng kiểm tra. [ChỉCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5.]CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
07CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Chỉ định một đối chiếu mặc định cho bảng.
40CREATE TABLE new_tbl LIKE orig_tbl;
Một nhận xét cho bảng, dài tới 2048 ký tự.
Bạn có thể đặt giá trị
9CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
13 cho bảng bằng mệnh đềCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
11CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
40. 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 LIKE orig_tbl;
Cài đặt các tùy chọn ndb_table. & Nbsp; Bảng nhận xét trong một
7 tạo ra bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 hoặc câu lệnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
58 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ọnCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
16 dấu phẩy nếu cần, ngay sau chuỗiCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
21 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 aCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
7 that creates anCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 table or anCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
58 statement which alters one can also be used to specify one to four of theCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
16 optionsCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
17,CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
18,CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
19, orCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
20 as a set of name-value pairs, separated by commas if need be, immediately following the stringCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
21 that begins the quoted comment text. An example statement using this syntax is shown here [emphasized text]:CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
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
22. 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 MySQLCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
23.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Cú pháp nhận xét này cũng được hỗ trợ với các câu lệnh
58 cho các bảngCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
5. Hãy nhớ rằng một bình luận bảng được sử dụng vớiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
58 thay thế bất kỳ bình luận hiện có nào mà bảng có thể đã có trước đây.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Đặt tùy chọn
13 trong các nhận xét bảng không được hỗ trợ cho các bảngCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
5 [nó bị bỏ qua].CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Để 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.
29CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Thuật toán nén được sử dụng để nén cấp trang cho các bảng
9. Các giá trị được hỗ trợ bao gồmCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
31,CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
32 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
33. Thuộc tínhCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
29 đượ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ảngCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
9 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 new_tbl AS SELECT * FROM orig_tbl;
36CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Chuỗi kết nối cho bảng
68.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
Ghi chú
Các phiên bản cũ hơn của MySQL đã sử dụng tùy chọn
40 cho chuỗi kết nối.CREATE TABLE new_tbl LIKE orig_tbl;
39,CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
40CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Đối với
9, mệnh đềCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
42 'cho phép tạo các bảng bên ngoài thư mục dữ liệu. BiếnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
43 phải được bật để sử dụng mệnh đềCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
44. Đườ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 test [blob_col BLOB, INDEX[blob_col[10]]];
9. Để 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Khi tạo bảng
5, bạn có thể sử dụng mệnh đềCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
42 ', mệnh đềCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
48' hoặc cả hai. Họ chỉ định vị trí tương ứng để đặt tệp dữ liệu và chỉ mục của bảngCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5. Không giống như các bảngCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
9, 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ảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 với tùy chọnCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
39 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
40. Các tệp được tạo trong thư mục được chỉ định.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Bạn phải có đặc quyền
54 để sử dụng tùy chọn bảngCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
39 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
56.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Quan trọng
Các tùy chọn cấp độ bảng
39 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
56 bị bỏ qua cho các bảng được phân vùng. [Lỗi #32091]CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Các tùy chọn này chỉ hoạt động khi bạn không sử dụng tùy chọn
59. Hệ điều hành của bạn cũng phải có cuộc gọiCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
60 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 đủ.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Nếu bảng
5 được tạo không có tùy chọnCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
39, tệpCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
63 được tạo trong thư mục cơ sở dữ liệu. Theo mặc định, nếuCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5 tìm thấy tệpCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
63 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ệpCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
66 cho các bảng được tạo không có tùy chọnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
40. Để ngăn chặn hành vi này, hãy khởi động máy chủ với tùy chọnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
68, trong trường hợp đóCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5 không ghi đè lên các tệp hiện có và thay vào đó trả về lỗi.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Nếu bảng
5 được tạo bằng tùy chọnCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
39 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
40 và tệpCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
63 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
66 hiện có,CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5 luôn trả về lỗi và không ghi đè lên tệp trong thư mục được chỉ định.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Quan trọng
Các tùy chọn cấp độ bảng
39 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
56 bị bỏ qua cho các bảng được phân vùng. [Lỗi #32091]CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Các tùy chọn này chỉ hoạt động khi bạn không sử dụng tùy chọn
59. Hệ điều hành của bạn cũng phải có cuộc gọiCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
60 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 đủ.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Nếu bảng
5 được tạo không có tùy chọnCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
39, tệpCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
63 được tạo trong thư mục cơ sở dữ liệu. Theo mặc định, nếuCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5 tìm thấy tệpCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
63 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ệpCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
66 cho các bảng được tạo không có tùy chọnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
40. Để ngăn chặn hành vi này, hãy khởi động máy chủ với tùy chọnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
68, trong trường hợp đóCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5 không ghi đè lên các tệp hiện có và thay vào đó trả về lỗi.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Nếu bảng
5 được tạo bằng tùy chọnCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
39 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
40 và tệpCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
63 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
66 hiện có,CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
5 luôn trả về lỗi và không ghi đè lên tệp trong thư mục được chỉ định.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Bạn không thể sử dụng tên đường dẫn chứa thư mục dữ liệu MySQL với
39 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
56. Đ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]]];
Kể từ MySQL 8.0.16, bảng kế thừa mã hóa lược đồ mặc định nếu mệnh đề
81 không được chỉ định. Nếu biếnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
87 được bật, đặc quyềnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
88 đượ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]]];
81 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.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Kể từ MySQL 8.0.16, việc chỉ định mệnh đề
81 có giá trị khác vớiCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
91 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
92 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.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Để 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
63 vàCREATE TABLE new_tbl LIKE orig_tbl;
64 [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.CREATE TABLE new_tbl LIKE orig_tbl;
Các giá trị được phép là một chuỗi theo nghĩa đen chứa một tài liệu
6 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
6 bị từ chối.SELECT * FROM tbl_name WHERE auto_col IS NULL
0CREATE TABLE new_tbl LIKE orig_tbl;
Các giá trị
63 vàCREATE TABLE new_tbl LIKE orig_tbl;
64 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.CREATE TABLE new_tbl LIKE orig_tbl;
Các giá trị
63 vàCREATE TABLE new_tbl LIKE orig_tbl;
64 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;
01SELECT * FROM tbl_name WHERE auto_col IS NULL
Nếu bạn muốn chèn dữ liệu vào bảng
71, bạn phải chỉ định vớiCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
01 bảng mà hàng phải được chèn.SELECT * FROM tbl_name WHERE auto_col IS NULL
01 chỉ là một tùy chọn hữu ích cho các bảngSELECT * FROM tbl_name WHERE auto_col IS NULL
71. Sử dụng giá trịCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
06 hoặcSELECT * FROM tbl_name WHERE auto_col IS NULL
07 để 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
08 để 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.SELECT * FROM tbl_name WHERE auto_col IS NULL
97CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đối với các bảng
5,CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
97 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;
97 được chỉ định cho một định nghĩa chỉ số riêng lẻ ghi đè giá trị cấp bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đối với các bảng
9,CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97 chỉ định kích thước trang tính bằng kilobyte để sử dụng cho các bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 nén. Giá trịCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97 được coi là một gợi ý; Một kích thước khác nhau có thể được sử dụng bởiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 nếu cần thiết.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97 chỉ có thể nhỏ hơn hoặc bằng giá trịCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
20. 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
20. Tùy thuộc vàoSELECT * FROM tbl_name WHERE auto_col IS NULL
20, các giá trịSELECT * FROM tbl_name WHERE auto_col IS NULL
97 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Oracle khuyến nghị cho phép
24 khi chỉ địnhSELECT * FROM tbl_name WHERE auto_col IS NULL
97 cho bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9. KhiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
24 được bật, việc chỉ định giá trịSELECT * FROM tbl_name WHERE auto_col IS NULL
97 không hợp lệ trả về lỗi. NếuCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
24 bị vô hiệu hóa, giá trịSELECT * FROM tbl_name WHERE auto_col IS NULL
97 không hợp lệ dẫn đến cảnh báo và tùy chọnCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97 bị bỏ qua.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Cột
32 để đáp ứng vớiSELECT * FROM tbl_name WHERE auto_col IS NULL
33 báo cáoSELECT * FROM tbl_name WHERE auto_col IS NULL
97 thực tế được sử dụng bởi bảng, cũng nhưCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
22.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
9 chỉ hỗ trợCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97 ở cấp bảng.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97 không được hỗ trợ với các giá trị 32kb và 64kbCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
20.SELECT * FROM tbl_name WHERE auto_col IS NULL
9 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;
9 không hỗ trợ tùy chọnCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
97 khi tạo bảng tạm thời.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
96CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
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
96 với các bảngCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
5 để kiểm soát số lượng phân vùng bảng bị phản đối. 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Công cụ lưu trữ
5 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ằngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5 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 khóa chính của bảng bằng cách đặtCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
48, trong đóSELECT * FROM tbl_name WHERE auto_col IS NULL
49 là số lượng hàng mà bạn mong đợi sẽ chèn vào bảng.SELECT * FROM tbl_name WHERE auto_col IS NULL
Giá trị
96 tối đa là 4294967295; Các giá trị lớn hơn được cắt ngắn đến giới hạn này.CREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
51SELECT * FROM tbl_name WHERE auto_col IS NULL
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ữ
7 sử dụng tùy chọn này như một gợi ý về việc sử dụng bộ nhớ.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";
53SELECT * FROM tbl_name WHERE auto_col IS NULL
Chỉ có hiệu lực với bảng
5. Đặ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ànhCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
2 cho biết công cụ lưu trữ chỉ đóng gói dàiSELECT * FROM tbl_name WHERE auto_col IS NULL
7,SELECT * FROM tbl_name WHERE auto_col IS NULL
8,SELECT * FROM tbl_name WHERE auto_col IS NULL
6 hoặcCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
7.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Nếu bạn không sử dụng
53, mặc định là đóng gói chuỗi, nhưng không phải là số. Nếu bạn sử dụngSELECT * FROM tbl_name WHERE auto_col IS NULL
61, các số cũng được đóng gói.SELECT * FROM tbl_name WHERE auto_col IS NULL
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
62 [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ịSELECT * FROM tbl_name WHERE auto_col IS NULL
2. .“same” keys usually only take two bytes [including the pointer to the row]. Compare this to the ordinary case where the following keys takesCREATE 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";
62 [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 haveSELECT * FROM tbl_name WHERE auto_col IS NULL
2 values. [In this case, the packed key length is stored in the same byte that is used to mark if a key isCREATE 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";
2.]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";
65SELECT * FROM tbl_name WHERE auto_col IS NULL
Tùy chọn này không được sử dụng.
55CREATE TABLE new_tbl LIKE orig_tbl;
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
67 để đáp ứng vớiSELECT * FROM tbl_name WHERE auto_col IS NULL
68. CộtSELECT * FROM tbl_name WHERE auto_col IS NULL
32 hiển thị định dạng hàng được chỉ định trong câu lệnhSELECT * FROM tbl_name WHERE auto_col IS NULL
7, cũng nhưCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
22.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
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
9:CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Định dạng hàng mặc định được xác định bởi
73, có cài đặt mặc định làSELECT * FROM tbl_name WHERE auto_col IS NULL
50. Định dạng hàng mặc định được sử dụng khi tùy chọnCREATE TABLE new_tbl LIKE orig_tbl;
55 không được xác định hoặc khiCREATE TABLE new_tbl LIKE orig_tbl;
76 được sử dụng.SELECT * FROM tbl_name WHERE auto_col IS NULL
Nếu tùy chọn
55 không được xác định hoặc nếuCREATE TABLE new_tbl LIKE orig_tbl;
76 đượ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ởiSELECT * FROM tbl_name WHERE auto_col IS NULL
73. Để biết thêm thông tin, xem xác định định dạng hàng của bảng.SELECT * FROM tbl_name WHERE auto_col IS NULL
Để lưu trữ
9 hiệu quả hơn các loại dữ liệu, đặc biệt là các loạiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
3, hãy sử dụngSELECT * FROM tbl_name WHERE auto_col IS NULL
50. Xem định dạng hàng động cho các yêu cầu liên quan đến định dạng hàngCREATE TABLE new_tbl LIKE orig_tbl;
50.CREATE TABLE new_tbl LIKE orig_tbl;
Để bật nén cho các bảng
9, chỉ địnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
85. Tùy chọnSELECT * FROM tbl_name WHERE auto_col IS NULL
85 không được hỗ trợ khi tạo các 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àngSELECT * FROM tbl_name WHERE auto_col IS NULL
75.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đị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
71.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Khi bạn chỉ định mệnh đề không mặc định
55, hãy xem xét tùy chọn cấu hìnhCREATE TABLE new_tbl LIKE orig_tbl;
24.SELECT * FROM tbl_name WHERE auto_col IS NULL
91 không được hỗ trợ. NếuSELECT * FROM tbl_name WHERE auto_col IS NULL
91 được chỉ định trong khiSELECT * FROM tbl_name WHERE auto_col IS NULL
24 bị vô hiệu hóa,SELECT * FROM tbl_name WHERE auto_col IS NULL
9 sẽ đưa ra cảnh báo và giả địnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
95. NếuSELECT * FROM tbl_name WHERE auto_col IS NULL
91 được chỉ định trong khiSELECT * FROM tbl_name WHERE auto_col IS NULL
24 được bật, đây là mặc định,SELECT * FROM tbl_name WHERE auto_col IS NULL
9 trả về lỗi.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Để biết thêm thông tin về các định dạng hàng
9, xem Phần & NBSP; 15.10, định dạng hàng của InnOdb.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đối với các bảng
5, giá trị tùy chọn có thể làCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
49 hoặcCREATE TABLE new_tbl LIKE orig_tbl;
50 cho định dạng hàng tĩnh hoặc có độ dài thay đổi. Myisampack đặt loại thànhCREATE TABLE new_tbl LIKE orig_tbl;
75. Xem Phần & NBSP; 16.2.3, các định dạng lưu trữ bảng Myisam.myisampack sets the type toCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
75. See Section 16.2.3, “MyISAM Table Storage Formats”.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đối với các bảng
5, mặc địnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
55 làCREATE TABLE new_tbl LIKE orig_tbl;
50.CREATE TABLE new_tbl LIKE orig_tbl;
07CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Đâ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
08 đượ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ỉ các tuyên bốCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
09,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
10 vàCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
11 được cho phép sauCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
12. Để 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"}'];
13CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
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
9 hay không. Giá trịCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
2 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ìnhSELECT * FROM tbl_name WHERE auto_col IS NULL
16. Giá trịCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
20 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;
15 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 new_tbl LIKE orig_tbl;
19 để 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"}'];
20CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Chỉ định xem có cho phép số liệu thống kê liên tục cho bảng
9 hay không. Giá trịCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
2 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ìnhSELECT * FROM tbl_name WHERE auto_col IS NULL
23. Giá trịCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
20 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;
15 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ệnhCREATE TABLE new_tbl LIKE orig_tbl;
26 hoặcCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
58, hãy đưa ra câu lệnhCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
19 để 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"}'];
29CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
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
30. Để 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 t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
77CREATE TABLE new_tbl LIKE orig_tbl;
Điều khoản
77 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;
1CREATE TABLE new_tbl LIKE orig_tbl;
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 đề
77. Để 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 new_tbl LIKE orig_tbl;
34 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.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Để tạo một bảng trong không gian bảng hệ thống, chỉ định
35 làm tên bảng không gian.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
2CREATE TABLE new_tbl LIKE orig_tbl;
Sử dụng
36, 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 đặtCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
43. Ví dụ: bạn có thể thêm một bảng vớiCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
95 vào không gian bảng hệ thống bằng cách sử dụngSELECT * FROM tbl_name WHERE auto_col IS NULL
36.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Để tạo một bảng trong một không gian bảng tệp cho mỗi bảng, chỉ định
43 làm tên không gian bảng.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
3CREATE TABLE new_tbl LIKE orig_tbl;
Ghi chú
Nếu
43 được bật, bạn không cần chỉ địnhCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
42 để tạo không gian bảng cho mỗi bảngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
9. Các bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 được tạo trong các không gian bảng tệp theo bảng theo mặc định khiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
43 được bật.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Điều khoản
39 được cho phép vớiCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
47 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 t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
77. Kể từ MySQL 8.0.21, thư mục được chỉ định trong mệnh đềCREATE TABLE new_tbl LIKE orig_tbl;
39 phải được biết đếnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
9. Để 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Ghi chú
Nếu
43 được bật, bạn không cần chỉ địnhCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
42 để tạo không gian bảng cho mỗi bảngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
9. Các bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 được tạo trong các không gian bảng tệp theo bảng theo mặc định khiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
43 được bật.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Điều khoản
39 được cho phép vớiCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
47 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 t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
77. Kể từ MySQL 8.0.21, thư mục được chỉ định trong mệnh đềCREATE TABLE new_tbl LIKE orig_tbl;
39 phải được biết đếnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
9. Để 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Hỗ trợ cho các điều khoản
51 vàCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
52 vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
53 đượ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.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Tùy chọn bảng
71 chỉ được sử dụng với bảngCREATE TABLE new_tbl LIKE orig_tbl;
5.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
71 Xác định loại lưu trữ được sử dụng [đĩa hoặc bộ nhớ] và có thể làCREATE TABLE new_tbl LIKE orig_tbl;
57 hoặcCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
7.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";
59 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ằngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
60. Xem Phần & NBSP; 23.6.10, Bảng dữ liệu đĩa cụm NDB NDB, để biết thêm thông tin.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Quan trọng
Một mệnh đề
71 không thể được sử dụng trong câu lệnhCREATE TABLE new_tbl LIKE orig_tbl;
7 mà không có mệnh đềCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
77.CREATE TABLE new_tbl LIKE orig_tbl;
64CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Ghi chú
Nếu
43 được bật, bạn không cần chỉ địnhCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
42 để tạo không gian bảng cho mỗi bảngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
9. Các bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 được tạo trong các không gian bảng tệp theo bảng theo mặc định khiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
43 được bật.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Điều khoản CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
39 được cho phép với CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
47 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;
77. 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]]];
39 phải được biết đến CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9. Để 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.
CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
CREATE TABLE new_tbl LIKE orig_tbl;
CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Hỗ trợ cho các điều khoản
CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
51 và CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
52 với CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
53 đượ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;
71 chỉ được sử dụng với bảng CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5. CREATE TABLE new_tbl LIKE orig_tbl;
71 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"}'];
57 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";
7.
CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
59 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"}'];
60. 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 đề
71 không thể được sử dụng trong câu lệnhCREATE TABLE new_tbl LIKE orig_tbl;
7 mà không có mệnh đềCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
77.CREATE TABLE new_tbl LIKE orig_tbl;
Ghi chú
Biểu thức [
86] được sử dụng trong mệnh đềCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
75 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]CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
HASH[
86]CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Băm một hoặc nhiều cột để tạo một khóa để đặt và định vị các hàng.
86 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ụ, đây là cả hai câu lệnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
7 hợp lệ bằng cách sử dụngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
85:CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
4CREATE TABLE new_tbl LIKE orig_tbl;
Bạn không được sử dụng các điều khoản
86 hoặcCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
87 vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
88.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
85 sử dụng phần còn lại củaCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
86 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Từ khóa
91 đò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 logicCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
92. Để 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"}'];
93]CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Điều này tương tự như
94, 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"}'];
95 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 t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
5CREATE TABLE new_tbl LIKE orig_tbl;
Đố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
91. Đ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ởiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
94. Đó 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"}'];
98 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 t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
6CREATE TABLE new_tbl LIKE orig_tbl;
Tùy chọn
99 được hỗ trợ vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
00.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]
01 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]
02 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ùngmysql> 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 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 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ởiCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
27 hoặcCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
07 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.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]
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:
7CREATE TABLE new_tbl LIKE orig_tbl;
Đ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
27 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. .CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Cũng trong MySQL 5.6.11 trở lên,
01 được hiển thị khi cần thiết trong đầu ra củamysql> 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 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.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
02 luôn được bỏ qua từ đầu ramysql> 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, ngay cả khi tùy chọn này được chỉ định khi tạo bảng gốc.mysqldump.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
02 is always omitted frommysql> 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 output, even if this option was specified when creating the original table.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Bạn không được sử dụng các điều khoản
86 hoặcCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
87 vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
16.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]
RANGE[
86]CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Trong trường hợp này,
86 hiển thị một loạt các giá trị sử dụng một bộ toán tửCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
86. 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ụngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
86. Bạn không thể sử dụngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
87 với phân vùng phạm vi.CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Ghi chú
Đối với các bảng được phân vùng bởi
22,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 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ằngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
24, như được mô tả sau trong phần này.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]
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
7 được hiển thị ở đây:CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
8CREATE TABLE new_tbl LIKE orig_tbl;
26 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]
27 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.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]
Các mệnh đề
86 hoạt động tuần tự theo cách tương tự như các phầnCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
29 của khốimysql> 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 [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ỗimysql> 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]
31 liên tiếp lớn hơn so với số trước, với một lần tham chiếumysql> 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]
32 xuất hiện cuối cùng trong danh sách.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]
Các cột phạm vi [________ 695]
Biến thể này trên
22 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]
35 hoặcmysql> 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]. 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]
37 và một tập hợp các giá trị cột trong mỗi mệnh đề định nghĩa phân vùngmysql> 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]. [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 trongmysql> 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]
95 vàCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
40 là 16.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]
95 được sử dụng trong mệnh đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
37 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ụngmysql> 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]
3,SELECT * FROM tbl_name WHERE auto_col IS NULL
4,SELECT * FROM tbl_name WHERE auto_col IS NULL
1,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
0,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
47 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]
37.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]
Mệnh đề
86 đượ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 đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
50; nghĩa là, danh sách các giá trị được sử dụng cho mỗi 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]
86 phải chứa cùng số lượng giá trị như có các cột được liệt kê trong mệnh đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
37. Một nỗ lực sử dụng nhiều hoặc ít giá trị hơ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]
86 so với trong mệnh đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
37 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ụngmysql> 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]
2 cho bất kỳ giá trị nào xuất hiện trongCREATE 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";
86. Có thể sử dụngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
32 nhiều hơn một lần cho một cột nhất định khác với đầu tiên, như được hiển thị trong ví dụ này:Inconsistency in usage of column lists for partitioning.... You cannot usemysql> 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]
2 for any value appearing inCREATE 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";
86. It is possible to useCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
32 more than once for a given column other than the first, as shown in this example: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]
9CREATE TABLE new_tbl LIKE orig_tbl;
Mỗi giá trị được sử dụng trong danh sách giá trị
86 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ỗiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
59 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ố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 thay thế], bạn cũng không thể sử dụng sốCREATE TABLE new_tbl LIKE orig_tbl;
20 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 một chuỗi được trích dẫn:CREATE TABLE new_tbl LIKE orig_tbl;
59].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]
Để 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[
86]CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Đ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ư
22, ngoại trừ chỉ có thể sử dụngmysql> 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]
65 để chỉ định các giá trị cho phép cho từ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]
87 đượ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 t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
0CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
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
87. Bạn không thể sử dụngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
86 vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
69.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]
Ghi chú
Đối với các bảng được phân vùng bởi
70, danh sách giá trị được sử dụng vớimysql> 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 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ởiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
72, được mô tả sau trong phần này.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]
Danh sách cột [________ 695]
Biến thể này trên
70 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]
75 hoặcmysql> 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]
76]. 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]
37 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]
40] 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]
PARTITION ... VALUES IN [
partition definition clause.
40]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]
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 [____ ____ 695] và danh sách giá trị được sử dụng trong các giá trị trong [____ 740] giống như các danh sách được sử dụng trong các cột phạm vi [________ 695] và danh sách giá trị được sử dụng trong Các giá trị nhỏ hơn [____ 740], tương ứng, ngoại trừ trong mệnh đề
87,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
32 không được phép và bạn có thể sử dụngmysql> 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]
2.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";
LIST COLUMNS[
and the value list used in
95]CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
VALUES IN[
are the same as those for the column list used in
40]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]
RANGE COLUMNS[
and the value list used in
95]CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
VALUES LESS THAN[
, respectively, except that in the
40]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 clause,CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
32 is not permitted, and you may usemysql> 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]
2.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";
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
87 vớiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
87 trái ngược với khi nó được sử dụng vớimysql> 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]
88. Khi được sử dụng vớimysql> 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]
89, mỗi phần 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]
87 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 đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
37 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 trongmysql> 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]
95 và trong các phần tử tạo thànhCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
40 là 16.set of column values; the number of values in each set must be the same as the number of columns used in themysql> 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]
37 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 themysql> 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]
95 and in the elements making up theCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
40 is 16.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]
Bảng được xác định bởi câu lệnh
26 sau đây cung cấp một ví dụ về bảng bằng cách sử dụng phân vùngCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
95: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]
1CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Phân vùng
78CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
Số lượng phân vùng có thể tùy chọn được chỉ định với mệnh đề phân vùng
78, trong đóCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
78 là số lượng phân vùng. Nếu cả mệnh đề này và bất kỳ mệnh đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
99 nào được 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]
78 phải bằng tổng số phân vùng được khai báo bằng các mệnh đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
99.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]
PARTITIONS
clause, where
78CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
78 is the number of partitions. If both this clause and anyCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
99 clauses are used,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]
78 must be equal to the total number of any partitions that are declared usingCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
99 clauses.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]
Ghi chú
Cho dù bạn có sử dụng mệnh đề
02 trong việc tạo bảng được phân vùng bởiCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
22 hoặcmysql> 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, bạn vẫn phải bao gồm ít nhất một 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]
05 trong định nghĩa bảng [xem bên dưới].CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
06CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
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 đề
06 tùy chọn. Phân chia có thể được thực hiện bởiCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
94 hoặcCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
27. Một trong những điều này có thể làCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
91. 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 nhóm bởiCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
70 hoặcmysql> 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.]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]
Số lượng các phần con có thể được chỉ định bằng cách sử dụng từ khóa
13 theo sau là giá trị số nguyên.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Kiểm tra nghiêm ngặt giá trị được sử dụng trong các điều khoản
02 hoặcCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
13 được áp dụng và giá trị này phải tuân thủ các quy tắc sau:CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
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ụ,
16 không được phép, mặc dùCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
17 đánh giá thànhCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
18. [Lỗi #15890]CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
19CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Mỗi phân vùng có thể được xác định riêng lẻ bằng mệnh đề
20. 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;
21CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Chỉ định một tên hợp lý cho phân vùng.
22CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Đối với phân vùng phạm vi, mỗi phân vùng phải bao gồm mệnh đề
86; Để phân vùng danh sách, bạn phải chỉ định mệnh đềCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
24 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;
25CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
MySQL chấp nhận tùy chọn
25 cho cảCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
99 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]
28. 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 lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
40CREATE TABLE new_tbl LIKE orig_tbl;
Một mệnh đề
40 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 LIKE orig_tbl;
2CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Độ dài tối đa cho một nhận xét phân vùng là 1024 ký tự.
39 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
32CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
39 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
32 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;
35 vàCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
36 phải là tên đường dẫn hệ thống tuyệt đối.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Kể từ MySQL 8.0.21, thư mục được chỉ định trong mệnh đề
39 phải được biết đếnCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
9. Để 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.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
Bạn phải có đặc quyền
54 để sử dụng tùy chọn phân vùngCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
39 hoặcCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
56.CREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
Thí dụ:
3CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
39 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
32 hoạt động giống như trong Điều khoảnCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
45 của câu lệnhCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
7 như được sử dụng cho các bảngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
5.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
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
39 vàCREATE TABLE test [blob_col BLOB, INDEX[blob_col[10]]];
32 bị bỏ qua để tạo các bảng được phân vùng nếuCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
49 có hiệu lực.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
96 vàCREATE TABLE t [c CHAR[20] CHARACTER SET utf8mb4 COLLATE utf8mb4_bin];
51SELECT * FROM tbl_name WHERE auto_col IS NULL
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
52 vàCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
53 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 lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
77CREATE TABLE new_tbl LIKE orig_tbl;
Có thể được sử dụng để chỉ định một không gian bảng
9 cho mỗi bảng cho phân vùng bằng cách chỉ địnhCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
56. Tất cả các phân vùng phải thuộc về cùng một công cụ lưu trữ.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Đặt các phân vùng bảng ____29 trong các không gian bảng
9 được chia sẻ không được hỗ trợ. Không gian bảng chia sẻ bao gồm không gian bảng hệ thốngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
9 và không gian bảng chung.CREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
60CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Định nghĩa phân vùng có thể tùy chọn chứa một hoặc nhiều mệnh đề
61. Mỗi trong số này bao gồm ở mức tối thiểu củaCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
62, trong đóCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
63 là một định danh cho phần phụ. Ngoại trừ việc thay thế từ khóaCREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
99 bằngmysql> 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, 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.CREATE TABLE lookup [id INT, INDEX USING BTREE [id]] ENGINE = MEMORY;
Phân chia phải được thực hiện bởi
94 hoặcCREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
27 và chỉ có thể được thực hiện trên các phân vùngCREATE TABLE new_tbl AS SELECT * FROM orig_tbl;
22 hoặcmysql> 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. Xem Phần & NBSP; 24.2.6, Subpartitioning.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]
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;
4Phâ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;
70 không thể được sử dụng trực tiếp trong mệnh đề CREATE TABLE t1 [c1 INT ENGINE_ATTRIBUTE='{"key":"value"}'];
75, 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;
70 được cho phép.