Thông số kỹ thuật kiểu dữ liệu có thể có các giá trị mặc định rõ ràng hoặc ẩn.
Một mệnh đề DEFAULT
value
trong một đặc tả kiểu dữ liệu chỉ ra một giá trị mặc định cho một cột. Ví dụ:
CREATE TABLE t1 [
i INT DEFAULT -1,
c VARCHAR[10] DEFAULT '',
price DOUBLE[16,2] DEFAULT 0.00
];
SERIAL DEFAULT VALUE
là một trường hợp đặc biệt. Trong định nghĩa của một cột số nguyên, nó là bí danh cho NOT
NULL AUTO_INCREMENT UNIQUE
.
Một số khía cạnh của xử lý mệnh đề
CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
0 rõ ràng phụ thuộc vào phiên bản, như được mô tả sau đây.Xử lý mặc định rõ ràng kể từ MySQL 8.0.13
Xử lý mặc định rõ ràng trước MySQL 8.0.13
Xử lý mặc định ngầm
Xử lý mặc định rõ ràng kể từ MySQL 8.0.13
Xử lý mặc định rõ ràng trước MySQL 8.0.13
CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
Xử lý mặc định ngầm
Giá trị mặc định được chỉ định trong mệnh đề
CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
0 có thể là một hằng số hoặc biểu thức theo nghĩa đen. Với một ngoại lệ, bao gồm các giá trị mặc định biểu thức trong ngoặc đơn để phân biệt chúng với các giá trị mặc định không đổi theo nghĩa đen. Ví dụ:Ngoại lệ là, đối với các cột
2 vàCREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
3, bạn có thể chỉ định hàmCREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
4 là mặc định, mà không bao gồm dấu ngoặc đơn. Xem Phần & NBSP; 11.2.5, Khởi tạo tự động và cập nhật cho dấu thời gian và DateTime.CREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
Các loại dữ liệu
5,CREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
6,CREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
7 vàCREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
8 chỉ có thể được gán giá trị mặc định nếu giá trị được viết làm biểu thức, ngay cả khi giá trị biểu thức là chữ:CREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
CREATE TABLE t2 [b BLOB DEFAULT 'abc'];
Điều này được cho phép [mặc định theo nghĩa đen được chỉ định là biểu thức]:
Điều này tạo ra một lỗi [mặc định theo nghĩa đen không được chỉ định là biểu thức]:
-
Biểu thức Giá trị mặc định phải tuân thủ các quy tắc sau. Một lỗi xảy ra nếu một biểu thức chứa các cấu trúc không được phép.
Nghĩa đen, các chức năng tích hợp [cả xác định và không xác định] và các toán tử được cho phép.
Các mục tiêu con, tham số, biến, chức năng được lưu trữ và các hàm có thể tải không được phép.
Giá trị mặc định biểu thức không thể phụ thuộc vào một cột có thuộc tính
9.CREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
Giá trị mặc định biểu thức cho một cột có thể tham khảo các cột bảng khác, ngoại trừ các tham chiếu đến các cột hoặc cột được tạo với các giá trị mặc định biểu thức phải là các cột xảy ra trước đó trong định nghĩa bảng. Nghĩa là, các giá trị mặc định biểu thức không thể chứa các tham chiếu chuyển tiếp đến các cột hoặc cột được tạo với các giá trị mặc định biểu thức.
Hạn chế đặt hàng cũng áp dụng cho việc sử dụng
CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
0 để sắp xếp lại các cột bảng. Nếu bảng kết quả sẽ có giá trị mặc định biểu thức chứa tham chiếu chuyển tiếp đến cột hoặc cột được tạo có giá trị mặc định biểu thức, câu lệnh sẽ không thành công.Ghi chú
Nếu bất kỳ thành phần nào của giá trị mặc định biểu thức phụ thuộc vào chế độ SQL, các kết quả khác nhau có thể xảy ra đối với các cách sử dụng khác nhau của bảng trừ khi chế độ SQL giống nhau trong tất cả các mục đích sử dụng.
Đối với
CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
1 và CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
2, bảng đích lưu giữ các giá trị mặc định biểu thức từ bảng gốc.mysql> CREATE TABLE t4 [uid BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]]];
mysql> INSERT INTO t4 [] VALUES[];
mysql> INSERT INTO t4 [] VALUES[DEFAULT];
mysql> SELECT BIN_TO_UUID[uid] AS uid FROM t4;
+--------------------------------------+
| uid |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
Nếu một giá trị mặc định biểu thức đề cập đến một hàm không xác định, bất kỳ câu lệnh nào khiến biểu thức được đánh giá là không an toàn để sao chép dựa trên câu lệnh. Điều này bao gồm các tuyên bố như
CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
3 và CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
4. Trong tình huống này, nếu ghi nhật ký nhị phân bị vô hiệu hóa, câu lệnh được thực thi là bình thường. Nếu ghi nhật ký nhị phân được bật và CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
5 được đặt thành CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
6, câu lệnh được ghi lại và thực thi nhưng thông báo cảnh báo được ghi vào nhật ký lỗi, vì nô lệ sao chép có thể phân kỳ. Khi CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
5 được đặt thành CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
8 hoặc CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
9, câu lệnh được thực thi là bình thường.Khi chèn một hàng mới, giá trị mặc định cho một cột có mặc định biểu thức có thể được chèn bằng cách bỏ qua tên cột hoặc bằng cách chỉ định cột là
CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
0 [giống như đối với các cột có mặc định theo nghĩa đen]:Tuy nhiên, việc sử dụng
CREATE TABLE t2 [b BLOB DEFAULT 'abc'];
1] để chỉ định giá trị mặc định cho cột được đặt tên chỉ được phép cho các cột có giá trị mặc định theo nghĩa đen, không phải cho các cột có giá trị mặc định biểu thức.Xử lý mặc định rõ ràng trước MySQL 8.0.13
Xử lý mặc định ngầm
Các loại dữ liệu
CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
5, CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
6, CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
7 và CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
8 không thể được gán giá trị mặc định.Nếu một giá trị mặc định đánh giá thành một loại dữ liệu khác với loại cột được khai báo, thì sự ép buộc ngầm với loại được khai báo xảy ra theo các quy tắc chuyển đổi loại MySQL thông thường. Xem Phần & NBSP; 12.3, Chuyển đổi loại trong đánh giá biểu thức.
Xử lý mặc định ngầm
Nếu một đặc điểm kỹ thuật kiểu dữ liệu bao gồm không có giá trị
CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
0 rõ ràng, MySQL sẽ xác định giá trị mặc định như sau:Nếu cột có thể lấy
mysql> CREATE TABLE t4 [uid BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]]];
mysql> INSERT INTO t4 [] VALUES[];
mysql> INSERT INTO t4 [] VALUES[DEFAULT];
mysql> SELECT BIN_TO_UUID[uid] AS uid FROM t4;
+--------------------------------------+
| uid |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
4 làm giá trị, cột được xác định với mệnh đề mysql> CREATE TABLE t4 [uid BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]]];
mysql> INSERT INTO t4 [] VALUES[];
mysql> INSERT INTO t4 [] VALUES[DEFAULT];
mysql> SELECT BIN_TO_UUID[uid] AS uid FROM t4;
+--------------------------------------+
| uid |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
5 rõ ràng.Nếu cột không thể lấy
mysql> CREATE TABLE t4 [uid BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]]];
mysql> INSERT INTO t4 [] VALUES[];
mysql> INSERT INTO t4 [] VALUES[DEFAULT];
mysql> SELECT BIN_TO_UUID[uid] AS uid FROM t4;
+--------------------------------------+
| uid |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
4 làm giá trị, MySQL định nghĩa cột không có mệnh đề CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
0 rõ ràng.Đối với mục nhập dữ liệu vào cột
mysql> CREATE TABLE t4 [uid BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]]];
mysql> INSERT INTO t4 [] VALUES[];
mysql> INSERT INTO t4 [] VALUES[DEFAULT];
mysql> SELECT BIN_TO_UUID[uid] AS uid FROM t4;
+--------------------------------------+
| uid |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
8 không có mệnh đề CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
0 rõ ràng, nếu câu lệnh CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
3 hoặc CREATE TABLE t [i INT NOT NULL];
1 không bao gồm giá trị cho cột hoặc câu lệnh CREATE TABLE t2 [b BLOB DEFAULT ['abc']];
4 đặt cột thành mysql> CREATE TABLE t4 [uid BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]]];
mysql> INSERT INTO t4 [] VALUES[];
mysql> INSERT INTO t4 [] VALUES[DEFAULT];
mysql> SELECT BIN_TO_UUID[uid] AS uid FROM t4;
+--------------------------------------+
| uid |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
4, MySQL xử lý cột theo chế độ SQL có hiệu lực tại thời gian:Nếu chế độ SQL nghiêm ngặt được bật, xảy ra lỗi đối với các bảng giao dịch và câu lệnh được cuộn lại. Đối với các bảng không chuyển hóa, xảy ra lỗi, nhưng nếu điều này xảy ra cho hàng thứ hai hoặc hàng tiếp theo của một câu lệnh nhiều hàng, các hàng trước được chèn.
Nếu chế độ nghiêm ngặt không được bật, MySQL sẽ đặt cột thành giá trị mặc định ngầm cho kiểu dữ liệu cột.
Giả sử rằng một bảng
CREATE TABLE t [i INT NOT NULL];
4 được xác định như sau:CREATE TABLE t [i INT NOT NULL];
Trong trường hợp này,
CREATE TABLE t [i INT NOT NULL];
5 không có mặc định rõ ràng, vì vậy ở chế độ nghiêm ngặt, mỗi câu lệnh sau đây tạo ra một lỗi và không có hàng nào được chèn vào. Khi không sử dụng chế độ nghiêm ngặt, chỉ có câu lệnh thứ ba tạo ra lỗi; Mặc định ngầm được chèn cho hai câu lệnh đầu tiên, nhưng lần thứ ba thất bại vì CREATE TABLE t [i INT NOT NULL];
6 không thể tạo ra một giá trị:INSERT INTO t VALUES[];
INSERT INTO t VALUES[DEFAULT];
INSERT INTO t VALUES[DEFAULT[i]];
Xem Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.
Đối với một bảng đã cho, câu lệnh
CREATE TABLE t [i INT NOT NULL];
7 hiển thị các cột nào có mệnh đề CREATE TABLE t1 [
-- literal defaults
i INT DEFAULT 0,
c VARCHAR[10] DEFAULT '',
-- expression defaults
f FLOAT DEFAULT [RAND[] * RAND[]],
b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]],
d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR],
p POINT DEFAULT [Point[0,0]],
j JSON DEFAULT [JSON_ARRAY[]]
];
0 rõ ràng.Mặc định ngầm được xác định như sau:
Đối với các loại số, mặc định là
9, ngoại trừ đối với các loại số nguyên hoặc dấu phẩy động được khai báo với thuộc tínhCREATE TABLE t [i INT NOT NULL];
9, mặc định là giá trị tiếp theo trong chuỗi.CREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
Đối với các loại ngày và thời gian khác với
2, mặc định là giá trị không phù hợp với loại. Điều này cũng đúng vớiCREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
2 nếu biến hệ thốngCREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
3 được bật [xem Phần & NBSP; 5.1.8, các biến hệ thống máy chủ của Hồi giáo]. Mặt khác, đối với cộtINSERT INTO t VALUES[]; INSERT INTO t VALUES[DEFAULT]; INSERT INTO t VALUES[DEFAULT[i]];
2 đầu tiên trong bảng, giá trị mặc định là ngày và giờ hiện tại. Xem Phần & NBSP; 11.2, các loại dữ liệu ngày và thời gian.“zero” value for the type. This is also true forCREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
2 if theCREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
3 system variable is enabled [see Section 5.1.8, “Server System Variables”]. Otherwise, for the firstINSERT INTO t VALUES[]; INSERT INTO t VALUES[DEFAULT]; INSERT INTO t VALUES[DEFAULT[i]];
2 column in a table, the default value is the current date and time. See Section 11.2, “Date and Time Data Types”.CREATE TABLE t1 [ -- literal defaults i INT DEFAULT 0, c VARCHAR[10] DEFAULT '', -- expression defaults f FLOAT DEFAULT [RAND[] * RAND[]], b BINARY[16] DEFAULT [UUID_TO_BIN[UUID[]]], d DATE DEFAULT [CURRENT_DATE + INTERVAL 1 YEAR], p POINT DEFAULT [Point[0,0]], j JSON DEFAULT [JSON_ARRAY[]] ];
Đối với các loại chuỗi khác với
5, giá trị mặc định là chuỗi trống. Đối vớiINSERT INTO t VALUES[]; INSERT INTO t VALUES[DEFAULT]; INSERT INTO t VALUES[DEFAULT[i]];
5, mặc định là giá trị liệt kê đầu tiên.INSERT INTO t VALUES[]; INSERT INTO t VALUES[DEFAULT]; INSERT INTO t VALUES[DEFAULT[i]];