我试图获取表中最高的“行序号”,将其设置为变量,将其递增,然后将其与新数据一起作为新记录插入。
该脚本使用PHP,$ SQL用于mySQL

$SQL="
      BEGIN
        DECLARE lineOrder INT DEFAULT 1;
        SET lineOrder = (
           SELECT IFNULL(`Line Order`,1)
           FROM `router`
           ORDER BY `Line Order` DESC
           lIMIT 1);
        lineOrder = lineOrder + 1;
        INSERT INTO `router`(`Line Order`, `Estimated Time`,
                               `Estimated Time Unit`, `Work Center`,
                               `Work Description`)
        VALUES (lineOrder,?,?,?,?);
      END;
    ";
$stmt = $GLOBALS['mySQLConnection']->prepare($SQL);
echo $GLOBALS['mySQLConnection']->error;


这是错误:SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法以在第2行的'SET lineOrder =(SELECT IFNULL(Line Order,1)FROM router'附近使用

最佳答案

INSERT INTO `router` (`Line Order`,
     `Estimated Time`, `Estimated Time Unit`, `Work Center`, `Work Description`)
SELECT 1 + IFNULL(MAX(`Line Order`), 0),
     ?, ?, ?, ?
FROM `router`

10-06 00:49