【发布时间】:2022-01-02 17:08:32
【问题描述】:
我创建了 2 个表,如下所示:
$sql = "CREATE TABLE users (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id VARCHAR(25) UNIQUE NOT NULL,
password VARCHAR(256) NOT NULL,
first_name varchar(25) NOT NULL,
last_name varchar(25) NOT NULL,
email varchar(50) UNIQUE NOT NULL
date_created VARCHAR(25) NOT NULL,
date_modified VARCHAR(25) NOT NULL
)";
此表已成功创建。
我尝试按如下方式创建第二个表:
$sql = "CREATE TABLE users_performance (
id INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
user_id INT(11) REFERENCES users(id) UNIQUE NOT NULL,
performance text NOT NULL
)";
失败并出现以下错误:
创建表时出错:您的 SQL 语法有误;检查 与您的 MariaDB 服务器版本相对应的手册 在第 3 行的 'NOT NULL, performance text NOT NULL )' 附近使用的语法
现在错误行是:
user_id INT(11) REFERENCES users(id) UNIQUE NOT NULL
我浏览过 Maria DB 手册,但无法快速找到解决方案。 我知道这种语法在 postgresql 上运行良好。为什么它不能在 mysqli 上运行 我更喜欢为将来的更改等创建 2 个单独的表。 谢谢
【问题讨论】:
-
Not null 属于引用之前
-
第一个表中
email行的末尾缺少逗号。