冻结mysqltable

Freeze mysql table

有mysql命令冻结table? 以不在其中插入其他记录并且不修改它们的方式。

我是校长,谢谢大家

这应该有效 -

LOCK TABLES table_name [READ] ;

在 table 上创建 BEFORE INSERT 和 BEFORE UPDATE 触发器:

插入前

CREATE TRIGGER trigger_name_in
BEFORE INSERT 
   ON mytable FOR EACH ROW
BEGIN
    SIGNAL SQLSTATE VALUE '99999'
      SET MESSAGE_TEXT = 'You cannot insert rows to this table.';
END;

更新前

CREATE TRIGGER trigger_name_up
BEFORE UPDATE
   ON mytable FOR EACH ROW
BEGIN
    SIGNAL SQLSTATE VALUE '99998'
      SET MESSAGE_TEXT = 'You cannot update rows to this table.';
END;

这是一个演示:

DEMO

在此之后,可以从此 table 中删除行,因此如果您想阻止某人从您的 table 中删除行,您将需要 BEFORE DELETE TRIGGER...