将mysql 创建的函数CREATE DEFINER=`root`@`localhost` PROCEDURE `delete_backend_detection`(IN deviceid VARCHAR(50), IN pkid1 INT(11)) BEGIN update `sys_ptz_device` set is_valid=3 where device_id=deviceid ; update `sys_ptz_conf` set device_id =null where device_id=deviceid; delete from `sys_backend_detection` where device_id=deviceid and pkid=pkid1; END修改成金仓函数
时间: 2023-10-25 10:07:46 浏览: 393
金仓数据库中创建存储过程的语法与MySQL有一些不同,需要进行一些修改。下面是修改后的代码:
```
CREATE PROCEDURE delete_backend_detection(IN deviceid VARCHAR(50), IN pkid1 INT)
AS
BEGIN
UPDATE sys_ptz_device SET is_valid = 3 WHERE device_id = deviceid;
UPDATE sys_ptz_conf SET device_id = NULL WHERE device_id = deviceid;
DELETE FROM sys_backend_detection WHERE device_id = deviceid AND pkid = pkid1;
END;
```
请注意,金仓数据库中不需要指定 DEFINER,也不需要使用分号作为语句的结束符。同时,INT 类型的长度在金仓中也不需要指定。
相关问题
CREATE DEFINER=root@localhost PROCEDURE doctor_schedule(IN d_id INT) BEGIN SELECT doctor.d_name, work.work_start, work.work_end,work.work_state FROM doctor JOIN work ON doctor.d_id = work.d_id WHERE d_id = d_id;怎么调用
您可以使用CALL语句来调用该存储过程,语法如下:
```
CALL doctor_schedule(参数);
```
其中,参数为整型值,用于指定医生的ID。例如,如果要获取医生ID为1的医生的工作安排,可以执行以下语句:
```
CALL doctor_schedule(1);
```
执行后,将返回医生名称,工作开始时间,工作结束时间和工作状态的结果集。
CREATE DEFINER=root@% PROCEDURE deleteUser(username varchar(110)) BEGIN DELETE FROM order WHERE user_id = (SELECT id FROM user WHERE user_name = username); DELETE FROM order_info WHERE user_id = (SELECT id FROM user WHERE user_name = username); DELETE FROM goods_snapshot WHERE user_id = (SELECT id FROM user WHERE user_name = username); DELETE FROM vm_log WHERE user_id = (SELECT id FROM user WHERE user_name = username); DELETE FROM user WHERE user_name = username; END使用这个语句删除名为47的用户信息
可以使用这个存储过程删除名为47的用户信息。具体步骤如下:
1. 打开MySQL客户端,连接到相应的数据库。
2. 在MySQL命令行中输入以下命令:
```
CALL deleteUser('47');
```
其中,deleteUser是存储过程的名称,'47'是要删除的用户名。
3. 执行该命令,存储过程将会删除名为47的用户相关数据。
请注意,执行该命令需要具有足够的权限。如果你没有足够的权限,则需要使用具有足够权限的管理员账户连接到数据库。同时,删除数据是不可逆的,请确认要删除的数据是否正确。
阅读全文