MySql在两列上创建唯一键

时间:2017-08-29 23:21:15

标签: mysql many-to-many mariadb

我正在尝试创建一个多对多关系,但很难继续在两列上使中间表唯一。这是我的三个表的架构。

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

这显然只是练习,但整个项目允许允许多个用户列出要销售的产品。

感谢您的帮助。

2 个答案:

答案 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`) ) 之后的逗号和'而不是'。

我希望它有所帮助。