为了账号安全,请及时绑定邮箱和手机立即绑定

尝试创建表时无法修复 mysql 中的语法错误

尝试创建表时无法修复 mysql 中的语法错误

PHP
慕娘9325324 2021-10-22 14:34:15
CREATE TABLE category(  id int(10) NOT NULL AUTO_INCREMENT,  entity_type varchar(32),  entity_id INT(10),  PRIMARY KEY (id),  FOREIGN KEY (entity_id))我收到一个错误您的 SQL 语法有错误;似乎错误在:' entity_id INT(10), PRIMARY KEY (id), FOREIGN KEY (entity_id) )' 在第 3 行我无法理解如何修复它。而当我添加这个CREATE TABLE `Image` (  `Id [PK]` int (10)                               ,  `EntityType` varchar(32),  `EntityId [FK]` int(10));上面的代码修复了错误下面的代码即使在我尝试先创建图像和类别表然后在用户表中添加与它的关系之后也给出了外键约束$sql_image = 'CREATE TABLE IF NOT EXISTS image (    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,    entity_type VARCHAR(32) NOT NULL,    entity_id INT(10) UNSIGNED NOT NULL,    PRIMARY KEY (id) )';if ($db->database->createTable($sql_image)) {   echo "Image Table Created Successfully"; }$sql_category = 'CREATE TABLE IF NOT EXISTS category (    id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,    entity_type VARCHAR(32) NOT NULL,    entity_id INT(10) UNSIGNED NOT NULL,    PRIMARY KEY (id) );';if ($db->database->createTable($sql_category)) {    echo "Category Table Created Successfully"; }$sql_user = 'Create TABLE IF NOT EXISTS user(    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,    first_name varchar(255),    last_name varchar(255),    email varchar(255),    category int(10),    status boolean,    user_profile_photo int(10),    FOREIGN KEY (user_profile_photo) references image(entity_id),    FOREIGN KEY (category) references category(entity_id) );';if ($db->database->createTable($sql_user)) {    echo "User Table Created Successfully"; }
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

如果要添加外键,则需要定义引用表,表示该表entity_id属于哪个表


CREATE TABLE category(

  id int(10) NOT NULL AUTO_INCREMENT,

  entity_type varchar(32),

  entity_id INT(10),

  PRIMARY KEY (id),

  FOREIGN KEY (entity_id) REFERENCES Entity(entity_id)

)


查看完整回答
反对 回复 2021-10-22
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信