select * from tab1 for update wait 10;
--DDL文がDMLロック・キューで待機する時間の時間制限
alter session set ddl_lock_timeout = 3;
insert文に対して、
カラム追加はこの制限が適用されず、待ち続ける
カラム変更はこの制限が適用される
カラム削除はこの制限が適用される
update文に対して、
カラム追加はこの制限が適用されず、待ち続ける
カラム変更はこの制限が適用される
カラム削除はこの制限が適用される
show variables like 'innodb_lock_wait_timeout';
行ロックが解除されるまで InnoDB トランザクションが待機する時間の長さ (秒単位) です。
デフォルト値は 50 秒です。
show variables like 'lock_wait_timeout';
この変数は、メタデータロックを取得するための試行のタイムアウトを秒単位で指定します。
許可される値の範囲は 1 から 31536000 (1 年) です。デフォルトは 31536000 です。
このタイムアウトは、メタデータロックを使用するすべてのステートメントに適用されます。
これらには、テーブル、ビュー、ストアドプロシージャー、ストアドファンクションの DML 操作および DDL 操作のほかに、
LOCK TABLES、FLUSH TABLES WITH READ LOCK、および HANDLER ステートメントが含まれます。
show lock_timeout;
テーブル、インデックス、行、またはその他のデータベースオブジェクトに対してロック獲得を試みている最中、
指定されたミリ秒数を超えて待機するいかなる命令も停止されます。
値ゼロ(デフォルト)はこの機能を無効にします。
--ロックが解除されるまでのステートメントの待ち時間をミリ秒単位で指定します
SET LOCK_TIMEOUT 5000
SELECT @@lock_timeout;