我需要mysql中的语句帮助。 我在mysql表中有一个名为 Code 的字段,它定义为Interger(7)NOT NULL默认值9999999。
我的问题是当我做这个语句sql:
INSERT INTO mytable (Id, Code) VALUES ('123','');
我在字段代码中插入值零(0)。 为什么不在字段代码中插入值9999999?
感谢。
答案 0 :(得分:2)
因为您需要插入null
而不是空字符串(或者根本不提供@Vipin所提供的值)。
INSERT INTO mytable (Id, Code)
VALUES ('123', NULL);
空字符串仍然是一个值,默认值仅在提供NO值时使用。
由于code
是int
字段,MySQL会尝试将''
转换为数字,结果为0
。
答案 1 :(得分:0)
试试这个
INSERT INTO mytable (Id) VALUES ('123');
在您习惯之前,NULL值可能会令人惊讶。 从概念上讲,NULL表示“缺少未知值”并对其进行处理 与其他价值观略有不同。
这就是为什么你不能在null
http://dev.mysql.com/doc/refman/5.7/en/working-with-null.html
答案 2 :(得分:0)
仅在未提供值时使用默认值。尝试插入而不提供代码列值
INSERT INTO mytable (Id, Code) VALUES ('123');
答案 3 :(得分:0)
特定字段中的默认值示例如下所示
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