mysql - 尝试使用 mysql v5.5 创建表关系

标签 mysql foreign-keys foreign-key-relationship

大家好,尝试使用 mysql v5.5 创建两个表之间的关系,好奇我如何解决这个问题...

CREATE TABLE posts(id INT AUTO_INCREMENT, 
title varchar(100) NOT NULL, 
body varchar(500) NOT NULL, 
PRIMARY KEY (id) );

//posts_id not null creating error?
CREATE TABLE comments(id INT AUTO_INCREMENT, 
comment varchar(250)NOT NULL, 
posts_id NOT NULL, 
PRIMARY KEY (id) );

我想让评论表中的 posts_id 与评论表中的帖子表 id 共享关系。

最佳答案

您尚未设置 posts_id 类型:

posts_id int(11) NOT NULL

那么您的评论表应如下所示:

CREATE TABLE IF NOT EXISTS <code>comments</code> (<br/> <code>id</code> int(11) NOT NULL AUTO_INCREMENT,<br/> <code>comment</code> varchar(250) NOT NULL,<br/> <code>posts_id</code> int(11) NOT NULL,<br/> PRIMARY KEY (<code>id</code>),<br/> KEY <code>posts</code> (<code>posts_id</code>)<br/> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

<p>And finally, a foreign relation:</p>

ALTER TABLE comments<br/> ADD CONSTRAINT comments_ibfk_1 FOREIGN KEY (posts_id) REFERENCES posts (id) ON DELETE CASCADE ON UPDATE CASCADE

关于mysql - 尝试使用 mysql v5.5 创建表关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20892508/

相关文章:

MySQL 错误 1442 使用 2 个触发器更新 2 个不同数据库上的 2 个表的字段

mysql - 显示外键等于某个值的所有表

mysql - 无法在 MySQL 中创建外键约束。错误编号 150

oracle - Oracle SQL Data Modeler 中的弧关系 (XOR)?

mysql - 清理充满 html 标签的旧数据库

java - 如何在 hibernate 中将表列与另一个表列映射

mysql - Laravel 验证器转义数据库名称

c# - ASP.NET - 使用字符串 ID 和 2 个键查询表

SQL:在 OneToOne 关系中删除子项(但理论上是父项)时删除父项

MYSQL 创建带有外键的表产生错误