本教程假定您已创建了测试数据库。如果尚未创建测试数据库,请参见第 1 课:创建测试数据库。
可以将本教程中的 SQL 语句复制并粘贴到 Interactive SQL 中。
启动 Sybase Central,并使用用户 ID DBA 和口令 sql 连接到测试数据库 app_profiling.db。
如果不熟悉如何启动 Sybase Central 和连接到数据库,请参见连接到本地数据库。
在左窗格中,单击 app_profiling - DBA,然后选择 [文件] » [打开 Interactive SQL]。
Interactive SQL 启动并连接到 app_profiling.db 数据库。
在 Interactive SQL 中,运行以下 SQL 语句:
创建两个表
CREATE TABLE "DBA"."deadlock1" ( "id" UNSIGNED BIGINT NOT NULL DEFAULT AUTOINCREMENT, "val" CHAR(1) ); CREATE TABLE "DBA"."deadlock2" ( "id" UNSIGNED BIGINT NOT NULL DEFAULT AUTOINCREMENT, "val" CHAR(1) ); |
向各表中插入值
INSERT INTO "deadlock1"("val") VALUES('x'); INSERT INTO "deadlock2"("val") VALUES('x'); |
创建两个过程,稍后用它们形成死锁
CREATE PROCEDURE "DBA"."proc_deadlock1"( ) BEGIN LOCK TABLE "DBA"."deadlock1" IN EXCLUSIVE MODE; WAITFOR DELAY '00:00:20:000'; UPDATE deadlock2 SET val='y'; END; CREATE PROCEDURE "DBA"."proc_deadlock2"( ) BEGIN LOCK TABLE "DBA"."deadlock2" IN EXCLUSIVE MODE; WAITFOR DELAY '00:00:20:000'; UPDATE deadlock1 SET val='y'; END; |
提交对数据库所做的更改
COMMIT; |
退出 Interactive SQL。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |