警告:#1265第1行的列'pdd'截断数据

Nic*_*ick 13 mysql

我无法PDD在PHPMYADMIN上设置(患者死亡日期)为空,直到死亡日期到来为止; 也在客户端然后我可以检查NULL数据使用它.

有人可以建议我一个解决方案吗?

patientnhs_no   hospital_no sex     name    surname     dob     address     pls  pdd    
1001001001      6000001      m     john     smith   1941-01-01  Bournmouth  1    0000-00-00
Run Code Online (Sandbox Code Playgroud)

(如果死亡,PDD应该为空,如果死亡则为死亡日期)

小智 12

正如消息错误所示,您需要增加列的长度以适合您尝试插入的数据的长度(0000-00-00)

编辑1:

在你的评论之后,我运行一个测试表:

mysql> create table testDate(id int(2) not null auto_increment, pdd date default null, primary key(id));
Query OK, 0 rows affected (0.20 sec)
Run Code Online (Sandbox Code Playgroud)

插入:

mysql> insert into testDate values(1,'0000-00-00');
Query OK, 1 row affected (0.06 sec)
Run Code Online (Sandbox Code Playgroud)

编辑2:

那么,显然你想pdd在注释状态下向字段插入一个NULL值?你可以用两种方式做到这一点:

方法1:

mysql> insert into testDate values(2,'');
Query OK, 1 row affected, 1 warning (0.06 sec)
Run Code Online (Sandbox Code Playgroud)

方法2:

mysql> insert into testDate values(3,NULL);
Query OK, 1 row affected (0.07 sec)
Run Code Online (Sandbox Code Playgroud)

编辑3:

您未能更改pdd字段的默认值.下面是语法怎么做(在我的例子中,我在开始时将其设置为NULL,现在我将其更改为NOT NULL)

mysql> alter table testDate modify pdd date not null;
Query OK, 3 rows affected, 1 warning (0.60 sec)
Records: 3  Duplicates: 0  Warnings: 1
Run Code Online (Sandbox Code Playgroud)