我需要mysql中的語句幫助。 我在MySQL表中的字段名爲代碼定義爲基於整數(7)NOT NULL默認9999999Mysql在db的字段中插入零,默認值爲9999999
我的問題是,當我做這個聲明SQL:
INSERT INTO mytable (Id, Code) VALUES ('123','');
我去插入在字段代碼值零(0)。 爲什麼不在字段中插入值9999999 代碼?
謝謝。
我需要mysql中的語句幫助。 我在MySQL表中的字段名爲代碼定義爲基於整數(7)NOT NULL默認9999999Mysql在db的字段中插入零,默認值爲9999999
我的問題是,當我做這個聲明SQL:
INSERT INTO mytable (Id, Code) VALUES ('123','');
我去插入在字段代碼值零(0)。 爲什麼不在字段中插入值9999999 代碼?
謝謝。
默認值的默認值僅當沒有提供值。嘗試插入而不提供代碼列值默認值的
INSERT INTO mytable (Id, Code) VALUES ('123');
因爲您需要插入null
而不是空字符串(或者根本不提供任何值,如提到的@Vipin)。
INSERT INTO mytable (Id, Code)
VALUES ('123', NULL);
空字符串仍然是一個值,默認值僅在提供NO值時使用。
由於code
是int
字段,MySQL會嘗試將''
轉換爲數字,結果爲0
。
我已經插入NULL並且結果是相同的,它插入一個值爲零。無論如何,爲什麼用空字符串或NULL插入值ZERO?謝謝。 – Aresof
嘗試,直到你習慣了它這
INSERT INTO mytable (Id) VALUES ('123');
NULL值可奇怪的。 概念上,NULL表示「缺少一個未知值」,它被視爲 與其他值有所不同。
這就是爲什麼你不能的情況下,插入null
http://dev.mysql.com/doc/refman/5.7/en/working-with-null.html
實施例中的特定字段具有低於
GO
ALTER TABLE Table_name ADD
column_name decimal(18, 2) NOT NULL CONSTRAINT Constant_name DEFAULT 0
GO
ALTER TABLE Table_name SET (LOCK_ESCALATION = TABLE)
GO
COMMIT
整數給出的是不是一個字和(7)是(幾乎)無意義 – Strawberry
如果「Id」列的值也是整數,您不需要將值封裝在引號中。 –