Mysql在db的字段中插入零,默认值为9999999

时间:2016-01-13 10:36:21

标签: php mysql

我需要mysql中的语句帮助。 我在mysql表中有一个名为 Code 的字段,它定义为Interger(7)NOT NULL默认值9999999。

我的问题是当我做这个语句sql:

INSERT INTO mytable (Id, Code) VALUES ('123','');

我在字段代码中插入值零(0)。 为什么不在字段代码中插入值9999999?

感谢。

4 个答案:

答案 0 :(得分:2)

因为您需要插入null而不是空字符串(或者根本不提供@Vipin所提供的值)。

INSERT INTO mytable (Id, Code) 
VALUES ('123', NULL);

空字符串仍然是一个值,默认值仅在提供NO值时使用。

由于codeint字段,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