sách gpt4 ai đã đi

MySQL - INSERT INTO SELECT ( INSERT INTO ...) - 嵌套插入

In lại 作者:行者123 更新时间:2023-11-29 09:24:13 28 4
mua khóa gpt4 Nike

我试图同时在不同的表上插入两行。
子查询INSERT INTO的AUTO_INCRMENT或nhận dạng的值(如果已经存在)应该写入主查询中。

目前我有这个(仅用 3 个值简化),但它不起作用。我想知道是否有更好的方法来做到这一点。

INSERT IGNORE INTO access(`entryid`, `logid`, `urlid`)  
SELECT '0', '1', (INSERT IGNORE INTO urls(`url`) VALUES('example.com'));

我显然可以为此目的执行多个单独的查询,但我认为将其插入到一个查询中可以提高代码的可靠性(因为它永远不会在查询中途“失败”)。我只是在寻找嵌套的 INSERT INTO 解决方案。

1 Câu trả lời

为什么不将这些查询移至 giao dịch ?如果您这样做,如果其中任何一个查询失败,则整个 block 将被回滚。如果您使用LAST_INSERT_ID(),您可以获得先前插入的ID并使用它( see docs ).

基于您的查询的示例:

START TRANSACTION;
INSERT IGNORE INTO urls(`url`) VALUES('example.com');
INSERT IGNORE INTO access(`entryid`, `logid`, `urlid`) VALUES (0, 1, LAST_INSERT_ID());
COMMIT;

关于MySQL - INSERT INTO SELECT ( INSERT INTO ...) - 嵌套插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59881503/

28 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com