【问题标题】:multiple Insert in sp在 sp 中多次插入
【发布时间】:2016-07-22 07:58:06
【问题描述】:

我在 MYSQL 数据库中有这些表:

tBook (idBook,BookName)
tAuthor (idAuthor,AuthorName)
tBookAuthor (FK_Book,FK_Author)

我想在一个存储过程中插入一本新书。在相同的过程中,我想插入表 tBookAuthor。

INSERT INTO `tBook`
   (`idBook`, `BookName`)
VALUES
   (23, 'myBookName')

INSERT INTO `tBookAuthor`
   (`FK_Book`, `FK_Author`)
VALUES
   (LAST_INSERT_ID(), 526)

【问题讨论】:

  • 您面临的具体问题是什么?您描述的 2 个插入语句应该在存储过程中工作。您可能不需要在 idBook 字段中插入任​​何值,因为这可能是一个自动递增字段。
  • 两个插入都应该工作。你面临什么问题?
  • 我面临的问题是 php myadmin 不允许我执行此查询:DELIMITER // START TRANSACTION; INSERT INTO tMedia` (Title, Description, ISBN, InsertedIntoBibliothek, CoverLink,@,FK_AuthorFK_MediaType)值(myDescriptionmyISBNmyInsertDatemyAuthormyMediaType)插入INTO tMediaAuthor (FK_Media, FK_Author) 值 (LAST_INSERT_ID(), myAuthor) 提交; //`
  • 欢迎来到 Stack Overflow!我尽可能地编辑了你的问题。但是,添加代码和描述的解释,以便更多具有该主题知识的人看到它。请在您遇到的特定错误消息中进行编辑,以防有必要识别特定问题。祝你好运!

标签: php mysql stored-procedures insert


【解决方案1】:

问题是我试图修改一个已经存在的 storec 过程。 我是在 PHPmyAdmin 中完成的。

如果你想创建一个新的存储过程,你可以这样做:

DELIMITER //
CREATE PROCEDURE new_person(
  first CHAR(35), last CHAR(35), email CHAR(255), tool_id INT)
BEGIN
START TRANSACTION;
INSERT INTO `tBook`
(`idBook`,
`BookName`)
VALUES
(23
'myBookName')

INSERT INTO `tBookAuthor`
(`FK_Book`,
`FK_Author`)
VALUES
(LAST_INSERT_ID(),
526)
COMMIT;
END//
DELIMITER;

如果你想在 phpmyadmin 中改变一个存储过程,你可以这样做:

BEGIN
START TRANSACTION;
INSERT INTO `tBook`
(`idBook`,
`BookName`)
VALUES
(23
'myBookName')

INSERT INTO `tBookAuthor`
(`FK_Book`,
`FK_Author`)
VALUES
(LAST_INSERT_ID(),
526)
COMMIT;
END

【讨论】:

    【解决方案2】:

    不要使用存储过程,因为您使用的是 PHP,我建议进行 2 次插入,因为第二次插入是外键,您必须选择作者,获取书籍的最后插入 ID 并进行简单的插入那里。 麻烦少了很多。

    我也很难理解你的 dB 结构,一本书可以由多个作者写吗?如果是这样,我的错,否则,省去助手表的麻烦,只需将作者 ID 放在书上。

    【讨论】:

    • 哦,神秘的选民,你能告诉我你不喜欢我的回答吗?我根据先前的知识和经验发布了这个答案,所以我想知道为什么这不是一个好主意。
    • 是的,一本书可以由多个作者撰写。没错。
    • 那么为什么不能/不想在 php 中进行 2 次插入呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多