[SQL] CREATE OR REPLACE PROCEDURE Proc_CalTotalPrice() AS BEGIN UPDATE orders SET totalprice = (SELECT SUM(extendedprice * (1-discount) * (1+tax)) FROM lineitem WHERE orders.orderkey = lineitem.orderkey); [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PROCEDURE Proc_CalTotalPrice() AS BEGIN UPDATE orders SET totalprice = (SELE' at line 1
时间: 2023-07-03 09:15:52 浏览: 271
hello_proc.tar.gz_device_create_file_proc_hello
这段 SQL 语句有语法错误,可能是因为你在 MySQL 中使用了 Oracle 的语法。正确的 MySQL 存储过程语法应该是:
```
CREATE PROCEDURE Proc_CalTotalPrice()
BEGIN
UPDATE orders
SET totalprice = (
SELECT SUM(extendedprice * (1-discount) * (1+tax))
FROM lineitem
WHERE orders.orderkey = lineitem.orderkey
);
END;
```
请注意,MySQL 中使用 `BEGIN` 和 `END` 来定义存储过程的主体。此外,在 MySQL 中,你可能需要使用 `DELIMITER` 命令来设置自定义分隔符以避免语法错误。
阅读全文