我在win 7
使用wamp
。
在我的數據庫,我有一個表3210,兩個字段:username
和email
,兩者都被設置NOT NULL
。
但爲什麼我仍然可以insert
空值和空值到現場:電子郵件,見下圖:
我在win 7
使用wamp
。
在我的數據庫,我有一個表3210,兩個字段:username
和email
,兩者都被設置NOT NULL
。
但爲什麼我仍然可以insert
空值和空值到現場:電子郵件,見下圖:
其實,你插入的文本,他們不是NULL
。文本NULL
與NULL有很大不同。如果該字段設置爲NOT NULL
,則永遠不會違反規則。
嘗試在執行該語句,
INSERT INTO tableName VALUES (null, null) -- will fail
必將失敗,因爲這些都是NULL
。但下面的這個聲明肯定會起作用,因爲你插入了string
。
INSERT INTO tableName VALUES ('', 'null') -- will work
空值不等於NULL,它看起來像你插入「空」不爲NULL到數據庫中,所以你是一個字符串「空」不是一個NULL值結束了。
不要發送帶引號「NULL」或「NULL」的NULL,將其視爲文本值。
該問題是由於用於thease兩個字段的數據類型。 「文本」你可以改變這個varchar(255)使用NULL。 NULL和數據類型文本存在一些問題。
Null
是一個關鍵字。如果您直接輸入null,則會顯示錯誤。
例 -
insert into tablename(fieldname) values(null);
上面這條線會產生錯誤(如果你所提到的not null
)。
我想你已經輸入了別的東西。請再次檢查表格結構並輸入新數據。
「NULL」與空字符串(在MySQL中)不同,「NULL」與字符串「null」不相同。 – 2013-05-10 05:35:11
NULL和'null'是bro的兩個不同的東西。 'null'是任何電子郵件地址或用戶名'maulikvora'的字符串。 – 2013-05-10 05:50:34
它「空」字符串!我認爲!請檢查 – iamct 2013-05-10 05:35:31