我无法在PHPMYADMIN上将PDD
(患者死亡日期)设置为null,直到死亡日期到来为止;同样在客户端,我可以检查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
(如果活着,PDD应为null或死亡时为死亡日期)
答案 0 :(得分:11)
正如消息错误所示,您需要增加列的长度以适合您尝试插入的数据的长度(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)
插入:
mysql> insert into testDate values(1,'0000-00-00');
Query OK, 1 row affected (0.06 sec)
编辑2:
那么,你的意见是否想在pdd
字段中插入NULL值?
你可以用两种方式做到这一点:
方法1:
mysql> insert into testDate values(2,'');
Query OK, 1 row affected, 1 warning (0.06 sec)
方法2:
mysql> insert into testDate values(3,NULL);
Query OK, 1 row affected (0.07 sec)
编辑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
答案 1 :(得分:2)
您最有可能将字符串 'NULL'
推送到表格,而不是实际的NULL
,但其他事情也可能正在进行,例如:< / p>
mysql> CREATE TABLE date_test (pdd DATE NOT NULL);
Query OK, 0 rows affected (0.11 sec)
mysql> INSERT INTO date_test VALUES (NULL);
ERROR 1048 (23000): Column 'pdd' cannot be null
mysql> INSERT INTO date_test VALUES ('NULL');
Query OK, 1 row affected, 1 warning (0.05 sec)
mysql> show warnings;
+---------+------+------------------------------------------+
| Level | Code | Message |
+---------+------+------------------------------------------+
| Warning | 1265 | Data truncated for column 'pdd' at row 1 |
+---------+------+------------------------------------------+
1 row in set (0.00 sec)
mysql> SELECT * FROM date_test;
+------------+
| pdd |
+------------+
| 0000-00-00 |
+------------+
1 row in set (0.00 sec)
mysql> ALTER TABLE date_test MODIFY COLUMN pdd DATE NULL;
Query OK, 1 row affected (0.15 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> INSERT INTO date_test VALUES (NULL);
Query OK, 1 row affected (0.06 sec)
mysql> SELECT * FROM date_test;
+------------+
| pdd |
+------------+
| 0000-00-00 |
| NULL |
+------------+
2 rows in set (0.00 sec)