我想创建一个表,其中存储了所有其他表的信息,例如表名和来自同一数据库的该表的总字段。
所以如果数据库中有3个数据库表 表1:具有13列的学生表 表2:具有10列的教师表 我希望表3中有关于其他表的数据,因此表3中的记录将类似于
1 | Student | 13 2 | Teacher | 10 3 | All_table | 3
如果我创建第4个表,Admin为5列 比触发器应该添加行到All_table
1 | Student | 13 2 | Teacher | 10 3 | All_table | 3 4 | Admin | 5
答案 0 :(得分:0)
你不需要为此创建一个新表。在mysql中你有:
<强> INFORMATION_SCHEMA.COLUMNS 强>
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name'
[AND table_schema = 'db_name']
[AND column_name LIKE 'wild']
答案 1 :(得分:0)
MySQL目前不支持DDL触发器。仅对DML语句(INSERT,UPDATE,DELETE)支持触发器。
在执行DDL语句(例如INSERT INTO All_table
)之后,您需要执行的任何DML操作(例如CREATE TABLE
)都需要明确执行。 MySQL无法自动为您运行。
通过维护All_table
解决了什么问题?即为什么需要填充该表?