MySQL
基本
Column
確認
SHOW COLUMNS FROM v_balance;
レコード更新のたびに反映
updated[/ at timestamp NOT NULL DEFAULT CURRENT]TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
View
Create
CREATE OR REPLACE VIEW
[ビュー名]
(
[カラム]
)
AS
SELECT
[カラム]
FROM
[テーブル];
MySQL 5.7以前はFrom句にサブクエリを含めることができない
Trigger
Create
CREATE TRIGGER [トリガー名] [BEFORE|AFTER] [INSERT|UPDATE|DELETE] ON [テーブル]
FOR EACH ROW
BEGIN
...
END;
MySQL 5.7以前は2つ以上の処理を含めることができない
確認
SHOW TRIGGERS WHERE `Trigger`='[テーブル名]';
Procedure
Create
CREATE PROCEDURE [プロシージャ名]([引数:in/戻り値:out])
BEGIN
...
END;
確認
SHOW PROCEDURE STATUS WHERE Name='[テーブル名]';
DDLの動的実行
// sample
SET @ddl = 'ALTER TABLE hogehoge ADD COLUMN hogen int);';
PREPARE ddl_stmt FROM @ddl;
EXECUTE ddl_stmt;
DEALLOCATE PREPARE ddl_stmt;
Partition
Alter
ALTER TABLE [テーブル名]
PARTITION BY RANGE ([カラム名])
(
PARTITION [パーティション名] VALUES LESS THAN 10000,
PARTITION pmax VALUES LESS THAN MAXVALUE
)
確認
SELECT
TABLE_SCHEMA,
TABLE_NAME,
PARTITION_NAME,
PARTITION_METHOD,
PARTITION_EXPRESSION,
PARTITION_DESCRIPTION
FROM
INFORMATION_SCHEMA.PARTITIONS
WHERE
TABLE_NAME = '[テーブル名]';
Tips
ロック確認とキル
件数とスレッドIDの確認
mysql> SHOW ENGINE INNODB STATUS\G
プロセスの確認
mysql> show processlist;
mysql> KILL {数字};