MySQL 5.0.45
修改表以允许列为空的语法是什么,或者替换为什么错误:
ALTER mytable MODIFY mycolumn varchar(255) null;
Run Code Online (Sandbox Code Playgroud)
我将手册解释为只运行上面的内容,它会重新创建列,这次允许为null.服务器告诉我我有语法错误.我只是没有看到他们.
我有一个奇怪的问题.我正在尝试将一个外键添加到一个引用另一个表的表中,但由于某种原因它失败了.由于我对MySQL的了解有限,唯一可能怀疑的是在不同的表上有一个外键引用我想要引用的那个.
这是我的表关系的图片,通过phpMyAdmin:Relationships生成
我SHOW CREATE TABLE对两个表都进行了查询,sourcecodes_tags是带有外键的表,sourcecodes是引用的表.
CREATE TABLE `sourcecodes` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_id` int(11) unsigned NOT NULL,
`language_id` int(11) unsigned NOT NULL,
`category_id` int(11) unsigned NOT NULL,
`title` varchar(40) CHARACTER SET utf8 NOT NULL,
`description` text CHARACTER SET utf8 NOT NULL,
`views` int(11) unsigned NOT NULL,
`downloads` int(11) unsigned NOT NULL,
`time_posted` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `language_id` (`language_id`), …Run Code Online (Sandbox Code Playgroud) 我在MySQL中有表"A".它有一些参考,级联删除到一些其他表("B","C","D"......).当某些内容从"A"中删除时,我需要使用触发器.当我直接从"A"删除记录时,此触发器有效.但它不适用于级联删除.是否存在任何版本的MySQL,我的触发器将与级联删除一起使用?或者,也许还有另一种方式来打电话
我知道这可以使用外键完成,但我无法添加它们或者在插入新记录时发生了一些奇怪的事情.这个数据库中有很多存储过程,我不知道它们做了什么,因为我对存储过程一无所知.我希望有人可以帮我找出一个触发器,当我从Product表中删除它时,它将删除特定的ProductID.它也位于名为CompanyLink,TargetLink和CategoryLink的表中.
截至目前,当我从Product表中删除ProductID时,我必须从插入的其他3个表中手动删除它.