如果 MySQL 中的 not null 列中的值為空,是否在其中插入預設值?
您可以使用 IFNULL() 屬性或簡單的 IF() 與 IS NULL 屬性。語法如下 −
INSERT INTO yourTableName(yourColumnName1,yourColumnName2) VALUES('yourValue’',IF(yourColumnName1 IS NULL,DEFAULT(yourColumnName2),'yourMessage'));
為了理解以上語法,讓我們建立一個表。建立表的查詢如下 −
mysql> create table Post -> ( -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(10), -> UserPostMessage varchar(50) NOT NULL DEFAULT 'Hi Good Morning !!!' -> ); Query OK, 0 rows affected (0.67 sec)
現在,您可以向 not null 列中插入預設值(如果值為空)。查詢如下 −
mysql> insert into Post(UserName,UserPostMessage) -> values('John',if(UserName IS NULL,DEFAULT(UserPostMessage),'Hello')); Query OK, 1 row affected (0.21 sec) mysql> insert into Post(UserName,UserPostMessage) -> values(NULL,if(UserName IS NULL,DEFAULT(UserPostMessage),'Hello')); Query OK, 1 row affected (0.22 sec) mysql> insert into Post(UserName,UserPostMessage) -> values('Carol',if(UserName IS NULL,DEFAULT(UserPostMessage),'Hello')); Query OK, 1 row affected (0.14 sec)
使用 select 語句顯示錶中的所有記錄。查詢如下 −
mysql> select *from Post;
以下是輸出 −
+----+----------+---------------------+ | Id | UserName | UserPostMessage | +----+----------+---------------------+ | 1 | John | Hello | | 2 | NULL | Hi Good Morning !!! | | 3 | Carol | Hello | +----+----------+---------------------+ 3 rows in set (0.00 sec)
廣告