MySQL 分号在过程中的位置

标签 mysql variables syntax phpmyadmin procedure

我已经编写一些代码一段时间了,但遇到了一些问题。我有两个相同的表 - History 和 Checked_Out_Media - 我正在尝试获取 Checked_Out_Media 中的指定记录并将其移至 History 表。主键不会自动递增,因此我必须为最大历史表 ID 创建一个变量并将其递增 1。

我认为我的代码大部分是正确的,可能需要一些分号位置?可以看一下吗?

Create Procedure spMoveToHistory( IN UserID char(6), IN MediaBarcode varchar(50) )

BEGIN

    SELECT @NextRow := (MAX(History_TUID) + 1)
    From History

    Insert into History
    Values (@NextRow, COM.User_ID, COM.Media_Barcode, COM.Checked_Out_Date, COM.Return_Date)
    From Checked_Out_Media as COM
    Where COM.User_ID = UserID 
         AND (COM.Media_Barcode = MediaBarcode)

END

此外,我使用 PHPMyAdmin,它允许我将分隔符设置为代码外部的 //

最佳答案

您应该命名参数,以便将它们与列名称区分开。此外,您还需要 insert 。 。 。选择:

Create Procedure spMoveToHistory (
    IN in_UserID char(6),
    IN in_MediaBarcode varchar(50)
)
BEGIN
    SELECT @NextRow := (MAX(History_TUID) + 1)
    From History;

    Insert into History
        Select @NextRow, COM.User_ID, COM.Media_Barcode, COM.Checked_Out_Date, COM.Return_Date
        From Checked_Out_Media COM
        Where COM.User_ID = in_UserID  AND COM.Media_Barcode = in_MediaBarcode;
END;

关于MySQL 分号在过程中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36587970/

相关文章:

mysql - 连接多个sql表以查找共同值

php - 如何在 MySQL 查询中添加两个 WHERE 语句?

Mysql:计算特定日期差异匹配时的增加/减少百分比

scala - 在 Scala 中使用 "val capacity : Int"而不是 "val Int Capacity"的任何原因

amazon-web-services - Cloudformation YAML 模板(如果其他情况未按预期工作)

javascript - JavaScript 代码中的语法错误

mysql - 是否可以**将 .sql 文件扩展名更改为 .myname** 并且 wamp 或 sqlite 等软件仍然可以读取它?

跨越多行的 PHP 类常量字符串变量

C++类继承变量

javascript - 重新声明 JavaScript 变量有什么用吗?