我正在尝试创建一个多对多关系,但很难继续在两列上使中间表唯一。这是我的三个表的架构。
create table users
(
id int primary key auto_increment,
username varchar(255) not null,
password varchar(255) not null,
email varchar(255) not null
)
create table products
(
id int primary key auto_increment,
product_name varchar(255) not null,
product_description text(999) not null,
product_price int not null
)
create table users_products
(
id int primary key auto_increment,
user_id int null,
product_id int null
unique key 'users_product_index' ('user_id', 'product_id')
)
我使用这个SQL代码,它给了我这个错误
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''user_id', 'product_id')
)' at line 6
这显然只是练习,但整个项目允许允许多个用户列出要销售的产品。
感谢您的帮助。
答案 0 :(得分:1)
你错过了一个逗号。但是模式存在一些不太理想的问题。请参阅提示:http://mysql.rjweb.org/doc.php/index_cookbook_mysql#many_to_many_mapping_table
答案 1 :(得分:0)
试试这个:
queryset
请注意create table users_products
(
id int primary key auto_increment,
user_id int null,
product_id int null,
unique key `users_product_index` (`user_id`, `product_id`)
)
之后的逗号和'而不是'。
我希望它有所帮助。