MySql根据另一个字段的值使字段可访问?

时间:2013-06-06 09:20:22

标签: mysql

假设我在MySql中有以下表格,其中包含以下列:

  • state(布尔值),状态为0或1;
  • col1(如果state = 1则可访问//表示如果state = 1则可由用户编辑)
  • col2(如果state = 0,则可访问)
  • col3(始终可访问)

如何在MySql中创建这样的表?

1 个答案:

答案 0 :(得分:1)

正如HamZa所说,“可访问”应该在代码层中完成。实际上我同意,但它可能是有争议的。

选项可以是使用不同的视图。您可以创建诸如

之类的视图
CREATE VIEW foo_1 AS 
SELECT state, col1, col3
FROM foo
WHERE state = 1;

CREATE VIEW foo_2 AS
SELECT state, col2, col3
FROM foo
WHERE state = 0;

但请注意,视图存在某些限制,因此它们是可更新/可插入的。

到目前为止我唯一可能遇到的问题是

  

视图必须包含基表中没有默认值的所有列。

请查看manual以获取更多信息。