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條經驗 獲得超6個贊
如果要添加外鍵,則需要定義引用表,表示該表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)
)
- 3 回答
- 0 關注
- 150 瀏覽
添加回答
舉報
0/150
提交
取消