我想要一张只能有一条记录的表格。我打算将它用于配置目的。虽然我知道这不是SQL数据库的用例,更适合KV商店。但我想将此与现有交易结合使用。换句话说,我希望有一个KV存储,其中每个键映射到一行的表。是否可以对MySQL或其他SQL数据库中的表强制执行单行限制/约束?
答案 0 :(得分:1)
您可以使用枚举约束和唯一constaint的组合,以确保表中只有一行
CREATE TABLE example_tbl (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) NOT NULL,
-- this ensures unique_value column only accepts 'some_value'
unique_value ENUM('some_value') NOT NULL,
-- this ensures unique_value column is unique
UNIQUE (unique_value)
);
答案 1 :(得分:0)
在向表中插入记录时,您需要有条件来检查是否存在值。通常这是从应用程序端完成的。如果存在记录,则可以使用插入或更新条件。
Query1= SELECT * FROM Table1 WHERE Column1='SomeValue'
如果Query1返回一个值,则对表进行更新,否则执行insert。