📄 is_columns.test
字号:
SELECT table_schema,table_name FROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modification of COLUMN_NAMESELECT table_name, column_name FROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12);SELECT table_name, column_name FROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modification of COLUMN sizeSELECT table_name, column_name, character_maximum_length, character_octet_length, column_typeFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN first_col CHAR(20);SELECT table_name, column_name, character_maximum_length, character_octet_length, column_typeFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modification of COLUMN typeSELECT table_name, column_name, character_maximum_length, character_octet_length, column_typeFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN first_col VARCHAR(20);SELECT table_name, column_name, character_maximum_length, character_octet_length, column_typeFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modify COLUMN DEFAULTSELECT table_name, column_name, column_defaultFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN first_col CHAR(10) DEFAULT 'hello';SELECT table_name, column_name, column_defaultFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modify IS_NULLABLESELECT table_name, column_name, is_nullableFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN first_col CHAR(10) NOT NULL;SELECT table_name, column_name, is_nullableFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modify COLLATIONSELECT table_name, column_name, collation_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN first_col CHAR(10) COLLATE 'latin1_general_cs';SELECT table_name, column_name, collation_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modify CHARACTER SETSELECT table_name, column_name, character_maximum_length, character_octet_length, character_set_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN first_col CHAR(10) CHARACTER SET utf8;SELECT table_name, column_name, character_maximum_length, character_octet_length, character_set_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check modify COLUMN_COMMENTSELECT table_name, column_name, column_commentFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN first_col CHAR(10) COMMENT 'Hello';SELECT table_name, column_name, column_commentFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check ADD COLUMNSELECT table_name, column_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexADD COLUMN second_col CHAR(10);SELECT table_name, column_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check switch ordinal position of columnSELECT table_name, column_name, ordinal_positionFROM information_schema.columnsWHERE table_name = 't1_my_tablex'ORDER BY table_name, column_name;ALTER TABLE db_datadict.t1_my_tablexMODIFY COLUMN second_col CHAR(10) FIRST;SELECT table_name, column_name, ordinal_positionFROM information_schema.columnsWHERE table_name = 't1_my_tablex'ORDER BY table_name, column_name;## Check DROP COLUMNSELECT table_name, column_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexDROP COLUMN first_col;SELECT table_name, column_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check set COLUMN UNIQUESELECT table_name, column_name, column_keyFROM information_schema.columnsWHERE table_name = 't1_my_tablex';ALTER TABLE db_datadict.t1_my_tablexADD UNIQUE INDEX IDX(second_col);SELECT table_name, column_name, column_keyFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check impact of DROP TABLESELECT table_name, column_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';DROP TABLE db_datadict.t1_my_tablex;SELECT table_name, column_nameFROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check a VIEWCREATE VIEW test.t1_my_tablexAS SELECT 1 AS "col1", 'A' collate latin1_german1_ci AS "col2";--vertical_resultsSELECT * FROM information_schema.columnsWHERE table_name = 't1_my_tablex'ORDER BY table_name, column_name;--horizontal_resultsDROP VIEW test.t1_my_tablex;SELECT table_name FROM information_schema.columnsWHERE table_name = 't1_my_tablex';## Check impact of DROP SCHEMA--replace_result $engine_type <engine_type>evalCREATE TABLE db_datadict.t1_my_tablexENGINE = $engine_type ASSELECT 1;SELECT table_name FROM information_schema.columnsWHERE table_name = 't1_my_tablex';DROP DATABASE db_datadict;SELECT table_name FROM information_schema.columnsWHERE table_name = 't1_my_tablex';--echo ########################################################################--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and--echo # DDL on INFORMATION_SCHEMA table are not supported--echo ######################################################################### 3.2.1.3: Ensure that no user may execute an INSERT statement on any# INFORMATION_SCHEMA table.# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any# INFORMATION_SCHEMA table.# 3.2.1.5: Ensure that no user may execute a DELETE statement on any# INFORMATION_SCHEMA table.# 3.2.1.8: Ensure that no user may create an index on an# INFORMATION_SCHEMA table.# 3.2.1.9: Ensure that no user may alter the definition of an# INFORMATION_SCHEMA table.# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any# other database.# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data# in an INFORMATION_SCHEMA table.#--disable_warningsDROP DATABASE IF EXISTS db_datadict;DROP TABLE IF EXISTS test.t1;--enable_warningsCREATE DATABASE db_datadict;CREATE TABLE test.t1 (f1 BIGINT);--error ER_DBACCESS_DENIED_ERRORINSERT INTO information_schema.columns (table_schema,table_name,column_name)VALUES('test','t1', 'f2');--error ER_DBACCESS_DENIED_ERRORINSERT INTO information_schema.columns (table_schema,table_name,column_name)VALUES('test','t2', 'f1');--error ER_DBACCESS_DENIED_ERRORUPDATE information_schema.columns SET table_name = 't4' WHERE table_name = 't1';--error ER_DBACCESS_DENIED_ERRORDELETE FROM information_schema.columns WHERE table_name = 't1';--error ER_DBACCESS_DENIED_ERRORTRUNCATE information_schema.columns;--error ER_DBACCESS_DENIED_ERRORCREATE INDEX i3 ON information_schema.columns(table_name);--error ER_DBACCESS_DENIED_ERRORALTER TABLE information_schema.columns ADD f1 INT;--error ER_DBACCESS_DENIED_ERRORDROP TABLE information_schema.columns;--error ER_DBACCESS_DENIED_ERRORALTER TABLE information_schema.columns RENAME db_datadict.columns;--error ER_DBACCESS_DENIED_ERRORALTER TABLE information_schema.columns RENAME information_schema.xcolumns;# CleanupDROP TABLE test.t1;DROP DATABASE db_datadict;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -