START TRANSACTION; UPDATE student SET Sdept = '计科系' WHERE Sdept = 'CS'; EXECUTE sp_lock 报错: 1243 - Unknown prepared statement handler (sp_lock) given to EXECUTE
时间: 2024-03-27 12:39:28 浏览: 112
这个报错是因为在执行 `EXECUTE sp_lock` 的时候,没有预处理语句句柄 `sp_lock`。因此,你需要先执行 `PREPARE sp_lock FROM 'SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS'` 来准备语句句柄,然后再执行 `EXECUTE sp_lock` 来查询锁信息。整个 SQL 语句应该如下所示:
```
START TRANSACTION;
UPDATE student SET Sdept = '计科系' WHERE Sdept = 'CS';
PREPARE sp_lock FROM 'SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS';
EXECUTE sp_lock;
```
请注意,这个 SQL 语句仅供参考,具体的 SQL 语句应该根据你的数据库结构和需求来进行调整。
相关问题
执行语句后还是报错> 1109 - Unknown table 'INNODB_LOCKS' in information_schema
抱歉,我的回答有误。对于 MySQL 8.0 及以上版本,`INFORMATION_SCHEMA.INNODB_LOCKS` 已经被废弃了,取而代之的是 `performance_schema.data_locks` 表。因此,你需要修改 SQL 语句中的查询语句,将其替换为 `SELECT * FROM performance_schema.data_locks`。
整个 SQL 语句应该如下所示:
```
START TRANSACTION;
UPDATE student SET Sdept = '计科系' WHERE Sdept = 'CS';
PREPARE sp_lock FROM 'SELECT * FROM performance_schema.data_locks';
EXECUTE sp_lock;
```
请注意,这个 SQL 语句仅供参考,具体的 SQL 语句应该根据你的数据库结构和需求来进行调整。
阅读全文