gpt4 book ai didi

python - 自动增量主键和链接表(Mysql)

转载 作者:行者123 更新时间:2023-11-29 15:29:25 25 4
gpt4 key购买 nike

我正在使用 MySQL Workbench 尝试使用 Python 连接到 MySQL 数据库,但我有一个奇怪的问题。

我正在运行一个程序,它显示库存专辑列表,然后用户可以选择要添加的专辑,然后当用户确认订单完成时,有脚本编写并将这些新行提交到数据库。

我的问题是:当这些行写入 order_bridge 表时,每行的 entryid 都是唯一的,并且该主键无法引用订单表。

我正在考虑创建一个触发器,将订单的总成本插入到 orders 表中,从创建的行中获取新的 auto_increment 值,然后更新order_bridge 中新写入的行都具有相同的 orderid,但我无法理解整个过程。

以下是表格的设计方式:

    create table albums
( albumid int,
albumname varchar(100),
artistname varchar(50),
price int,
quantity int,

primary key (albumid)
);

create table order_bridge (
entryid int auto_increment,
orderid int,
albumid int,
quantity int,

primary key (entryid),
foreign key (orderid) references orders (orderid),
foreign key (albumid) references albums (albumid)
);

create table orders
( orderid int auto_increment,
total decimal(5,2),
entrydate datetime default current_timestamp,

primary key(orderid)
);

最佳答案

我已经通过将网站购物车中的每个客户实际插入到订单表中至少解决了一次这个问题。

这做了三件事:

  1. 防止完整的订单 ID 成为连续(对某些人无用,对另一些人有用)
  2. 提供了一种简单的方法来跟踪购物车放弃统计信息,当然
  3. 允许您在记录交易数据(例如将选择插入 order_bridge 表中)时拥有唯一的订单 ID。

如果您希望仅在交易完成后记录订单行,则操作顺序应为:

  1. 插入订单表信息(包括Python计算总计)
  2. 检索唯一的订单表 ID
  3. 插入相册行
  4. 插入订单桥行

关于python - 自动增量主键和链接表(Mysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58840742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com