Hướng dẫn set default value null in mysql - đặt giá trị mặc định null trong mysql


Sử dụng từ khóa mặc định trong MySQL để đặt giá trị mặc định thành NULL. Trước tiên chúng ta hãy tạo một -

mysql> create table DemoTable1440
   -> (
   -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> StudentName varchar(20) DEFAULT NULL,
   -> StudentAge int DEFAULT NULL
   -> );
Query OK, 0 rows affected (0.55 sec)

Chèn một số bản ghi trong bảng bằng lệnh chèn. Đối với các giá trị để trống, mặc định được chèn -

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)

Hiển thị tất cả các bản ghi từ bảng bằng cách chọn -

mysql> select * from DemoTable1440;

Điều này sẽ tạo ra đầu ra sau -

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)

Hướng dẫn set default value null in mysql - đặt giá trị mặc định null trong mysql

Cập nhật vào ngày 12 tháng 11 năm 2019 06:56:10

  • Câu hỏi và câu trả lời liên quan
  • Làm thế nào để đặt giá trị mặc định MySQL không?
  • Làm thế nào để đặt giá trị trường mặc định trong MySQL?
  • Làm thế nào để đặt giá trị mặc định cho hàng trống trong mysql?
  • Làm thế nào để kiểm tra xem giá trị cột là null hay có giá trị mặc định trong MySQL?
  • Chèn mặc định vào cột không null nếu giá trị là null trong mysql?
  • Đặt giá trị mặc định thành cột Loại JSON trong MySQL?
  • Cách đặt ngay () làm giá trị mặc định cho kiểu dữ liệu DateTime trong MySQL?
  • Đặt 1 cho giá trị không null trong mysql
  • Làm thế nào để sửa đổi giá trị mặc định cột trong MySQL?
  • Có cần phải thêm null mặc định trong MySQL không?
  • Đặt lại trường MySQL về giá trị mặc định?
  • Làm thế nào để hoàn nguyên hàng về giá trị cột mặc định trong MySQL?
  • Thêm một cột có giá trị không phải là null theo mặc định trong MySQL?
  • Làm cách nào để đặt giá trị mặc định cho một cột trong MySQL?
  • Chỉ đặt giá trị cho các giá trị null trong bảng MySQL

Webhosting tôi sử dụng đã kích hoạt StrictMode cho cơ sở dữ liệu. Tất cả các tập lệnh PHP của tôi bây giờ đã ngừng hoạt động vì họ báo cáo tôi chưa xác định giá trị mặc định cho một số cột.

Vì tôi có rất nhiều cột trong rất nhiều bảng, có cách nào để đặt tất cả các cột có "giá trị mặc định = không" với "giá trị mặc định = null" không? Bằng cách này, nó sẽ không báo cáo cho tôi lỗi nữa.

Tất nhiên, nếu có một cách khác (tốt hơn), tôi sẵn sàng cho nó.

Tôi đã thử nhìn trên mạng, nhưng tôi không thể tìm thấy bất cứ điều gì phù hợp cho trường hợp này.

Đã hỏi ngày 27 tháng 3 năm 2019 lúc 10:33Mar 27, 2019 at 10:33

1

Bạn có thể thay đổi cột

ALTER TABLE table_name
 MODIFY COLUMN col datatype  DEFAULT null

Đã trả lời ngày 27 tháng 3 năm 2019 lúc 10:37Mar 27, 2019 at 10:37

Hướng dẫn set default value null in mysql - đặt giá trị mặc định null trong mysql

1

Một cách tiếp cận chung ở đây sẽ hoạt động cho mỗi cột gây ra lỗi sẽ là đặt giá trị mặc định và sau đó có thể thực hiện cập nhật để ghi lại các bản ghi thiếu một giá trị.

ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';

Và đây là bản cập nhật:

UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;

Bạn không bắt buộc phải thực hiện bản cập nhật này, nhưng có thể có ý nghĩa khi đưa các bản ghi cũ hơn các giá trị bị thiếu phù hợp với những bản ghi mới hơn sẽ trông như thế nào.

Đã trả lời ngày 27 tháng 3 năm 2019 lúc 10:38Mar 27, 2019 at 10:38

Hướng dẫn set default value null in mysql - đặt giá trị mặc định null trong mysql

Tim Biegeleisentim BiegeleisenTim Biegeleisen

474K24 Huy hiệu vàng257 Huy hiệu bạc334 Huy hiệu đồng24 gold badges257 silver badges334 bronze badges

3

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 đề

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
4 trong một đặc tả kiểu dữ liệu hiển thị rõ ràng 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
);

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
5 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
mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
6.

Một số khía cạnh của xử lý mệnh đề

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 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 đề

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 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

    mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
    Query OK, 1 row affected (0.14 sec)
    mysql> insert into DemoTable1440 values();
    Query OK, 1 row affected (0.10 sec)
    mysql> insert into DemoTable1440(StudentName) values('David');
    Query OK, 1 row affected (0.11 sec)
    mysql> insert into DemoTable1440(StudentAge) values(24);
    Query OK, 1 row affected (0.09 sec)
    9 và
    mysql> select * from DemoTable1440;
    0, bạn có thể chỉ định hàm
    mysql> select * from DemoTable1440;
    1 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 t2 (b BLOB DEFAULT ('abc'));
  • Các loại dữ liệu

    mysql> select * from DemoTable1440;
    2,
    mysql> select * from DemoTable1440;
    3,
    mysql> select * from DemoTable1440;
    4 và
    mysql> select * from DemoTable1440;
    5 chỉ có thể được gán giá trị mặc định nếu giá trị được viết dưới dạng biểu thức, ngay cả khi giá trị biểu thức là chữ:

    mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
    Query OK, 1 row affected (0.14 sec)
    mysql> insert into DemoTable1440 values();
    Query OK, 1 row affected (0.10 sec)
    mysql> insert into DemoTable1440(StudentName) values('David');
    Query OK, 1 row affected (0.11 sec)
    mysql> insert into DemoTable1440(StudentAge) values(24);
    Query OK, 1 row affected (0.09 sec)
    0

Đ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

    mysql> select * from DemoTable1440;
    6.

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

mysql> select * from DemoTable1440;
7 để 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

mysql> select * from DemoTable1440;
8 và
mysql> select * from DemoTable1440;
9, bảng đích lưu giữ các giá trị mặc định biểu thức từ bảng gốc.

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
1

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ư

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
0 và
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
1. 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à
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
2 được đặt thành
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
3, 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
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
2 được đặt thành
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
5 hoặc
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
6, 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à

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 (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

+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
8) để 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

Giá trị mặc định được chỉ định trong mệnh đề

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 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ụ:

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 tả kiểu dữ liệu bao gồm không có giá trị

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 rõ ràng, MySQL sẽ xác định giá trị mặc định như sau:

Nếu cột có thể lấy

ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';
1 làm giá trị, cột được xác định với mệnh đề
ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';
2 rõ ràng.

Nếu cột không thể lấy

ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';
1 làm giá trị, MySQL định nghĩa cột không có mệnh đề
mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 rõ ràng.

Để nhập dữ liệu vào cột

ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';
5 không có mệnh đề
mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 rõ ràng, nếu câu lệnh
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
0 hoặc
ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';
8 không bao gồm giá trị cho cột hoặc câu lệnh
+-----------+-------------+------------+
| StudentId | StudentName | StudentAge |
+-----------+-------------+------------+
|         1 | Chris       |         21 |
|         2 | NULL        |       NULL |
|         3 | David       |       NULL |
|         4 | NULL        |         24 |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
1 đặt cột thành
ALTER TABLE yourTable ALTER some_text_column SET DEFAULT 'None';
1, 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

UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;
1 được định nghĩa như sau:

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
2

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

UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;
2 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ì
UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;
3 không thể tạo ra một giá trị:

mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
3

Xem Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.

Đối với một bảng đã cho, câu lệnh

UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;
4 hiển thị các cột nào có mệnh đề
mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1440 values();
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1440(StudentName) values('David');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1440(StudentAge) values(24);
Query OK, 1 row affected (0.09 sec)
7 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à

    UPDATE yourTable SET some_text_column = 'None' WHERE some_text_column IS NULL;
    
    6, 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ính
    mysql> select * from DemoTable1440;
    6, mặc định là giá trị tiếp theo trong chuỗi.

  • Đối với các loại ngày và thời gian khác với

    mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
    Query OK, 1 row affected (0.14 sec)
    mysql> insert into DemoTable1440 values();
    Query OK, 1 row affected (0.10 sec)
    mysql> insert into DemoTable1440(StudentName) values('David');
    Query OK, 1 row affected (0.11 sec)
    mysql> insert into DemoTable1440(StudentAge) values(24);
    Query OK, 1 row affected (0.09 sec)
    9, mặc định là giá trị không phù hợp với loại. Điều này cũng đúng với
    mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
    Query OK, 1 row affected (0.14 sec)
    mysql> insert into DemoTable1440 values();
    Query OK, 1 row affected (0.10 sec)
    mysql> insert into DemoTable1440(StudentName) values('David');
    Query OK, 1 row affected (0.11 sec)
    mysql> insert into DemoTable1440(StudentAge) values(24);
    Query OK, 1 row affected (0.09 sec)
    9 nếu biến hệ thống
    CREATE TABLE t1 (
      i     INT DEFAULT -1,
      c     VARCHAR(10) DEFAULT '',
      price DOUBLE(16,2) DEFAULT 0.00
    );
    0 đượ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ột
    mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
    Query OK, 1 row affected (0.14 sec)
    mysql> insert into DemoTable1440 values();
    Query OK, 1 row affected (0.10 sec)
    mysql> insert into DemoTable1440(StudentName) values('David');
    Query OK, 1 row affected (0.11 sec)
    mysql> insert into DemoTable1440(StudentAge) values(24);
    Query OK, 1 row affected (0.09 sec)
    9 đầ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 for
    mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
    Query OK, 1 row affected (0.14 sec)
    mysql> insert into DemoTable1440 values();
    Query OK, 1 row affected (0.10 sec)
    mysql> insert into DemoTable1440(StudentName) values('David');
    Query OK, 1 row affected (0.11 sec)
    mysql> insert into DemoTable1440(StudentAge) values(24);
    Query OK, 1 row affected (0.09 sec)
    9 if the
    CREATE TABLE t1 (
      i     INT DEFAULT -1,
      c     VARCHAR(10) DEFAULT '',
      price DOUBLE(16,2) DEFAULT 0.00
    );
    0 system variable is enabled (see Section 5.1.8, “Server System Variables”). Otherwise, for the first
    mysql> insert into DemoTable1440(StudentName,StudentAge) values('Chris',21);
    Query OK, 1 row affected (0.14 sec)
    mysql> insert into DemoTable1440 values();
    Query OK, 1 row affected (0.10 sec)
    mysql> insert into DemoTable1440(StudentName) values('David');
    Query OK, 1 row affected (0.11 sec)
    mysql> insert into DemoTable1440(StudentAge) values(24);
    Query OK, 1 row affected (0.09 sec)
    9 column in a table, the default value is the current date and time. See Section 11.2, “Date and Time Data Types”.

  • Đối với các loại chuỗi khác với

    CREATE TABLE t1 (
      i     INT DEFAULT -1,
      c     VARCHAR(10) DEFAULT '',
      price DOUBLE(16,2) DEFAULT 0.00
    );
    2, giá trị mặc định là chuỗi trống. Đối với
    CREATE TABLE t1 (
      i     INT DEFAULT -1,
      c     VARCHAR(10) DEFAULT '',
      price DOUBLE(16,2) DEFAULT 0.00
    );
    2, mặc định là giá trị liệt kê đầu tiên.

Làm cách nào để thay đổi giá trị mặc định của null trong mysql?

Để thả giá trị mặc định, hãy sử dụng Alter Col_Name Drop Mặc định: thay đổi bảng mytbl thay đổi j Drop mặc định; Trong trường hợp này, giá trị mặc định của cột trở lại mặc định tiêu chuẩn cho loại cột. Đối với các cột có thể chứa các giá trị null, đây sẽ là null.ALTER col_name DROP DEFAULT : ALTER TABLE mytbl ALTER j DROP DEFAULT; In this case, the column's default value reverts to the standard default for the column type. For columns that can contain NULL values, this will be NULL .

Giá trị mặc định có thể là null không?

Nếu không có giá trị mặc định được khai báo rõ ràng, giá trị mặc định là giá trị null. Điều này thường có ý nghĩa vì một giá trị null có thể được xem xét để thể hiện dữ liệu chưa biết. Trong một định nghĩa bảng, các giá trị mặc định được liệt kê sau kiểu dữ liệu cột.. This usually makes sense because a null value can be considered to represent unknown data. In a table definition, default values are listed after the column data type.

Làm cách nào để thay đổi null mặc định trong SQL?

Trong SQL, chúng ta có thể sử dụng hai chức năng để thay thế các mục null bằng giá trị mặc định.Các chức năng này là hợp tác () và isnull ().COALESCE() and ISNULL() .

NULL mặc định trong MySQL là gì?

Nếu một đặc tả kiểu dữ liệu bao gồm không có giá trị mặc định rõ ràng, MySQL xác định giá trị mặc định như sau: Nếu cột có thể lấy NULL làm giá trị, cột được xác định với mệnh đề NULL mặc định rõ ràng.Nếu cột không thể lấy NULL làm giá trị, MySQL định nghĩa cột không có mệnh đề mặc định rõ ràng.If the column can take NULL as a value, the column is defined with an explicit DEFAULT NULL clause. If the column cannot take NULL as a value, MySQL defines the column with no explicit DEFAULT clause.