MariaDB社区
标题:
关于默认值自己变成NULL的问题。
[打印本页]
作者:
shhboy
时间:
2008-12-31 00:36
标题:
关于默认值自己变成NULL的问题。
我有一个表是这样的。
CREATE TABLE IF NOT EXISTS 111 (
`id` int(10) NOT NULL auto_increment,
`member_id` smallint(5) default NULL,
`picture` varchar(255) default NULL,
`fir` SMALLINT(6) NOT NULL default '0',
`nr` SMALLINT(6) NOT NULL default '0',
`sr` SMALLINT(6) NOT NULL default '0',
`ar` SMALLINT(6) NOT NULL default '0',
`frr` SMALLINT(6) NOT NULL default '0',
PRIMARY KEY (`id`)
);
能正常创建该表,但问题在。进入NCAT后,这个表显示的所有默认值为0的字段,默认值仍然为NULL。不知道何解?
作者:
kider
时间:
2008-12-31 15:51
我按照你的SQL生成了一个表a111,Field显示是0,插入数据后也显示是0,我用的ems
是不是你的工具显示问题?NCAT ?
作者:
shhboy
时间:
2008-12-31 16:40
本帖最后由 shhboy 于 2008-12-31 16:45 编辑
恩,对,Navicat管理MYSQL的工具。不单单是这几个字段,所有not null default '0'的,用这个MYSQL管理工具进去全是NULL。到致后面的insert into语句中如果涉及到这几个字段为''的话,会提示错误。
我不得不修改语句,把所有为空的结果替换成0。如果和管理工具无关的话,那就应该是我现在安装的MYSQL的版本问题了,我现在用的是5。0。24a好像。又或者是设置上的问题?
作者:
独步古今
时间:
2009-1-23 11:30
把default '0'改成default 0 即可
作者:
独步古今
时间:
2009-1-23 11:37
当执行角本会报错时,把default '0'改成default 0。但如果不报错时,肯定是可以插入默认值的啊。
CREATE TABLE IF NOT EXISTS test (
`id` int(10) NOT NULL auto_increment,
`member_id` smallint(5) default NULL,
`picture` varchar(255) default NULL,
`fir` SMALLINT(6) NOT NULL default '0',
`nr` SMALLINT(6) NOT NULL default '0',
`sr` SMALLINT(6) NOT NULL default '0',
`ar` SMALLINT(6) NOT NULL default '0',
`frr` SMALLINT(6) NOT NULL default '0',
PRIMARY KEY (`id`)
);
insert into test(id) values(1);
select * from test;
结果如下(完全OK的):
+----+-----------+---------+-----+----+----+----+-----+
| id | member_id | picture | fir | nr | sr | ar | frr |
+----+-----------+---------+-----+----+----+----+-----+
| 1 | NULL | NULL | 0 | 0 | 0 | 0 | 0 |
+----+-----------+---------+-----+----+----+----+-----+
1 row in set (0.00 sec)
欢迎光临 MariaDB社区 (http://123.56.88.72/)
Powered by Discuz! X3.2