2018-05-07 14:54:58 +05:30
|
|
|
CREATE TABLE t1(f1 INT NOT NULL,
|
|
|
|
f2 INT NOT NULL,
|
|
|
|
f3 INT NULL,
|
|
|
|
f4 INT as (f2) STORED,
|
|
|
|
f5 INT as (f3) STORED,
|
|
|
|
PRIMARY KEY(f1))ROW_FORMAT=COMPRESSED, ENGINE=INNODB;
|
|
|
|
INSERT INTO t1(f1, f2, f3) VALUES(1, 1, 1);
|
|
|
|
SELECT @@alter_algorithm;
|
|
|
|
@@alter_algorithm
|
2018-09-17 14:22:30 +03:00
|
|
|
COPY
|
2018-05-07 14:54:58 +05:30
|
|
|
# All the following cases needs table rebuild
|
|
|
|
# Add and Drop primary key
|
|
|
|
ALTER TABLE t1 ADD COLUMN col1 INT NOT NULL,DROP PRIMARY KEY,ADD PRIMARY KEY(col1);
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
# Make existing column NULLABLE
|
|
|
|
ALTER TABLE t1 MODIFY f2 INT;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
# Drop Stored Column
|
|
|
|
ALTER TABLE t1 DROP COLUMN f5;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
# Add base non-generated column as a last column in the compressed table
|
|
|
|
ALTER TABLE t1 ADD COLUMN f6 INT NOT NULL;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
# Add base non-generated column but not in the last position
|
|
|
|
ALTER TABLE t1 ADD COLUMN f7 INT NOT NULL after f3;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
# Force the table to rebuild
|
|
|
|
ALTER TABLE t1 FORCE;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
# Row format changes
|
|
|
|
ALTER TABLE t1 ROW_FORMAT=COMPRESSED;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
# Engine table
|
|
|
|
ALTER TABLE t1 ENGINE=INNODB;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2020-04-25 14:27:00 +05:30
|
|
|
ALTER TABLE t1 FORCE, ALGORITHM=DEFAULT;
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
DROP TABLE t1;
|
|
|
|
affected rows: 0
|
|
|
|
CREATE TABLE t1(f1 INT PRIMARY KEY, f2 INT NOT NULL,
|
|
|
|
f3 INT AS (f2 * f2) VIRTUAL,
|
|
|
|
f4 INT NOT NULL UNIQUE,
|
|
|
|
f5 INT NOT NULL,
|
2018-11-07 17:42:41 +02:00
|
|
|
INDEX idx(f2))ENGINE=INNODB;
|
2018-05-07 14:54:58 +05:30
|
|
|
CREATE TABLE t2(f1 INT NOT NULL, f2 INT NOT NULL,
|
|
|
|
INDEX(f1),
|
2018-11-07 17:42:41 +02:00
|
|
|
FOREIGN KEY fidx(f1) REFERENCES t1(f1))ENGINE=INNODB;
|
2018-05-07 14:54:58 +05:30
|
|
|
INSERT INTO t1(f1, f2, f4, f5) VALUES(1, 2, 3, 4);
|
2018-09-19 17:29:25 +03:00
|
|
|
ALTER TABLE t1 ADD INDEX idx1(f4), page_compressed=1;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-09-19 17:29:25 +03:00
|
|
|
ALTER TABLE t1 DROP INDEX idx, page_compression_level=5;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
ALTER TABLE t1 ADD UNIQUE INDEX u1(f2);
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-09-19 17:29:25 +03:00
|
|
|
ALTER TABLE t1 DROP INDEX f4, page_compression_level=9;
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
SET foreign_key_checks = 0;
|
|
|
|
affected rows: 0
|
|
|
|
ALTER TABLE t1 ADD FOREIGN KEY(f5) REFERENCES t2(f1);
|
2018-09-17 14:22:30 +03:00
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-05-07 14:54:58 +05:30
|
|
|
DROP TABLE t2, t1;
|
|
|
|
affected rows: 0
|
2018-11-07 17:42:41 +02:00
|
|
|
CREATE TABLE t1(f1 INT NOT NULL,
|
|
|
|
f2 INT NOT NULL,
|
|
|
|
f3 INT AS (f2 * f2) VIRTUAL,
|
|
|
|
INDEX idx (f2))engine=innodb;
|
|
|
|
CREATE TABLE t2(f1 INT NOT NULL, f2 INT NOT NULL,
|
|
|
|
f3 VARCHAR(10),
|
|
|
|
INDEX(f1))ENGINE=INNODB;
|
|
|
|
INSERT INTO t1(f1, f2) VALUES(1, 1);
|
|
|
|
# Add column at the end of the table
|
|
|
|
ALTER TABLE t1 ADD COLUMN f4 char(100) default 'BIG WALL';
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
|
|
# Change virtual column expression
|
|
|
|
ALTER TABLE t1 CHANGE f3 f3 INT AS (f2 * f2) VIRTUAL;
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
|
|
# Add virtual column
|
|
|
|
ALTER TABLE t1 ADD COLUMN f5 INT AS (f2) VIRTUAL;
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
|
|
# Rename Column
|
|
|
|
ALTER TABLE t1 CHANGE f3 vcol INT AS (f2) VIRTUAL;
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
|
|
# Rename table
|
|
|
|
ALTER TABLE t1 RENAME t3;
|
2020-04-25 14:27:00 +05:30
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
2018-11-07 17:42:41 +02:00
|
|
|
# Drop Virtual Column
|
|
|
|
ALTER TABLE t3 DROP COLUMN vcol;
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
|
|
# Column length varies
|
|
|
|
ALTER TABLE t2 CHANGE f3 f3 VARCHAR(20);
|
|
|
|
affected rows: 0
|
|
|
|
info: Records: 0 Duplicates: 0 Warnings: 0
|
|
|
|
SET foreign_key_checks = 0;
|
|
|
|
affected rows: 0
|
|
|
|
ALTER TABLE t3 ADD FOREIGN KEY fidx(f2) REFERENCES t2(f1);
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
|
|
SET foreign_key_checks = 1;
|
|
|
|
affected rows: 0
|
|
|
|
ALTER TABLE t3 DROP FOREIGN KEY fidx;
|
|
|
|
affected rows: 1
|
|
|
|
info: Records: 1 Duplicates: 0 Warnings: 0
|
|
|
|
DROP TABLE t3, t2;
|
|
|
|
affected rows: 0
|