2013-05-10 39 views
0

enter image description here問題與NOT NULL mysql中

我在win 7使用wamp

在我的數據庫,我有一個表​​3210,兩個字段:usernameemail,兩者都被設置NOT NULL

但爲什麼我仍然可以insert空值和空值到現場:電子郵件,見下圖: enter image description here

+0

「NULL」與空字符串(在MySQL中)不同,「NULL」與字符串「null」不相同。 – 2013-05-10 05:35:11

+0

NULL和'null'是bro的兩個不同的東西。 'null'是任何電子郵件地址或用戶名'maulikvora'的字符串。 – 2013-05-10 05:50:34

+0

它「空」字符串!我認爲!請檢查 – iamct 2013-05-10 05:35:31

回答

0

其實,你插入的文本,他們不是NULL。文本NULLNULL有很大不同。如果該字段設置爲NOT NULL,則永遠不會違反規則。

嘗試在執行該語句,

INSERT INTO tableName VALUES (null, null) -- will fail 

必將失敗,因爲這些都是NULL。但下面的這個聲明肯定會起作用,因爲你插入了string

INSERT INTO tableName VALUES ('', 'null') -- will work 
0

空值不等於NULL,它看起來像你插入「空」不爲NULL到數據庫中,所以你是一個字符串「空」不是一個NULL值結束了。

0

不要發送帶引號「NULL」或「NULL」的NULL,將其視爲文本值。

該問題是由於用於thease兩個字段的數據類型。 「文本」你可以改變這個varchar(255)使用NULL。 NULL和數據類型文本存在一些問題。

0

Null是一個關鍵字。如果您直接輸入null,則會顯示錯誤。

例 -

insert into tablename(fieldname) values(null); 

上面這條線會產生錯誤(如果你所提到的not null)。

我想你已經輸入了別的東西。請再次檢查表格結構並輸入新數據。