多个一对一关系 mysql
multiple one-to-one relationship mysql
是否可以创建具有多个一对一关系的 table?
我试图通过以下查询获取它,但得到 SQL 错误。
表格是:
订单:
- id
- 购物车 ID (1:1)
- 用户 ID (1:1)
- payment_method_id
- shipping_method_id
- 总价
用户
- id
- 电子邮件
- phone
- 名字
- 姓氏
- 地址
- post代码
- 城市
- 密码为空
购物车:
- id
- cookie
- cartItem_id(1:很多)
- 总计
我想创建 table 具有一对一关联的两列的订单。
create table order
( id int auto_increment
, cart_id int
, user_id int
, payment_method_id int
, shipping_method_id int
, total_price int
, primary key(user_id)
, primary key(cart_id));
我复制了下面的查询,但出现错误,不知道为什么。
create table order(id int auto_increment, cart_id int, user_id int, payment_method_id int, shipping_method_id int, total_price int, primary key(id), foreign key (user_id) references user(id), foreign key (cart_id) references cart(id));
它说:
[42000][1064] You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to
use near 'order(id int auto_increment, cart_id int, user_id int,
payment_method_id int, sh' at line 1
我看不到什么?我只把id改成了id.
首先,Table 上的主键不能超过一个。
其次,要建立关系,您需要使用 Foreign Key
尝试以下查询:
create table order
( id int auto_increment
, cart_id int
, user_id int
, payment_method_id int
, shipping_method_id int
, total_price int
, primary key(id)
, FOREIGN KEY (user_id) REFERENCES User(Id)
, FOREIGN KEY (cart_id) REFERENCES Cart(Id));
是否可以创建具有多个一对一关系的 table? 我试图通过以下查询获取它,但得到 SQL 错误。
表格是: 订单:
- id
- 购物车 ID (1:1)
- 用户 ID (1:1)
- payment_method_id
- shipping_method_id
- 总价
用户
- id
- 电子邮件
- phone
- 名字
- 姓氏
- 地址
- post代码
- 城市
- 密码为空
购物车:
- id
- cookie
- cartItem_id(1:很多)
- 总计
我想创建 table 具有一对一关联的两列的订单。
create table order
( id int auto_increment
, cart_id int
, user_id int
, payment_method_id int
, shipping_method_id int
, total_price int
, primary key(user_id)
, primary key(cart_id));
我复制了下面的查询,但出现错误,不知道为什么。
create table order(id int auto_increment, cart_id int, user_id int, payment_method_id int, shipping_method_id int, total_price int, primary key(id), foreign key (user_id) references user(id), foreign key (cart_id) references cart(id));
它说:
[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order(id int auto_increment, cart_id int, user_id int, payment_method_id int, sh' at line 1
我看不到什么?我只把id改成了id.
首先,Table 上的主键不能超过一个。 其次,要建立关系,您需要使用 Foreign Key
尝试以下查询:
create table order
( id int auto_increment
, cart_id int
, user_id int
, payment_method_id int
, shipping_method_id int
, total_price int
, primary key(id)
, FOREIGN KEY (user_id) REFERENCES User(Id)
, FOREIGN KEY (cart_id) REFERENCES Cart(Id));