0
确实奇怪的麻烦!SQL迫使我使用默认值和属性
当(My)SQL向我的表中添加一些属性时,我不会遇到这个问题,即使我运行正确的命令并获得“SUCCESS”回复。
以下是创建这样一个表的代码:
CREATE TABLE `KIIS_EVENT_APPLICATION`
(
`ID_USER` smallint(3) unsigned NOT NULL,
`ID_EVENT` smallint(5) unsigned NOT NULL,
`COMES` timestamp,
`LEAVES` timestamp,
`TRANSPORT_THERE` varchar(30) COLLATE cp1250_czech_cs,
`TRANSPORT_BACK` varchar(30) COLLATE cp1250_czech_cs,
`ROLE` varchar(30) COLLATE cp1250_czech_cs NOT NULL,
`RELEVANCE` tinyint(1) unsigned NOT NULL,
FOREIGN KEY (`ID_EVENT`) REFERENCES `KIIS_EVENTS`(`ID_EVENT`),
FOREIGN KEY (`ID_USER`) REFERENCES `KIIS_USERS`(`ID_USER`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1250 COLLATE cp1250_czech_cs
如果我运行的查询,如
ALTER TABLE `KIIS_EVENT_APPLICATION` CHANGE `COMES` `COMES` TIMESTAMP NOT NULL;
页说,它成功完成,但没有任何变化。
我如何使COMES列与LEAVES列相同?
难道是由于缺少主键造成的吗?当我有两个外国人时,我需要一个吗(这是一个很好的SQL设计实践,或?)?
如果您可以重现此问题,请将错误报告给phpmyadmin团队。 – Jocelyn
'ALTER TABLE KIIS_EVENT_APPLICATION MODIFY COLUMN COMES TIMESTAMP NOT NULL DEFAULT'0000-00-00 00:00:00';'或更正确地说,'... TIMESTAMP NULL DEFAULT NULL'。 –
MySQL服务器5.6之前,表中的第一个时间戳列默认会获得神奇的行为。 –