Rumah > Soal Jawab > teks badan
Saya mempunyai jadual dengan lajur bernama 主键
和普通列
。我想要保持这两列的完整性
.
Andaikan saya mempunyai jadual pengguna dan dua data. Saya berharap dalam id
列和create_user
列之间保持完整性
CREATE TABLE USER ( id varchar(10) not null, create_user varchar(10) not null, PRIMARY KEY (id) ); insert into USER (id,create_user) values ('system','system'); insert into USER (id,create_user) values ('user01','system'); 结果如下 | id | create_user | | -------- | ------------| | system | system | | user01 | system |
Jika saya mengemas kini id (kunci utama) ia tidak mempunyai integriti.
update USER SET id='master' WHERE id='system'; 结果如下 | id | create_user | | -------- | ------------| | master | system | | user01 | system |
Tetapi Saya mahu melaksanakan ini di borang. adakah mungkin? Saya tidak mahu pertanyaan kemas kini tambahan.
| id | create_user | | -------- | ------------| | master | master | | user01 | master |
P粉3641297442023-09-13 12:04:12
Anda boleh mengemas kini sebarang bilangan lajur dan menggunakan pernyataan kes untuk memutuskan perkara yang anda mahu ia ditetapkan
如果存在表t,则删除表t; CREATE TABLE t ( id varchar(10) not null, create_user varchar(10) not null, PRIMARY KEY (id) ); 向t表插入数据 (id,create_user) values ('system','system'); 向t表插入数据 (id,create_user) values ('user01','system'); 更新t表 SET id = case when id= 'system' then 'master' else id end , create_user = case when create_user = 'system' then 'master' else create_user end where id = 'system' or create_user = 'system'; 从t表中查询数据; +--------+-------------+ | id | create_user | +--------+-------------+ | master | master | | user01 | master | +--------+-------------+ 共有2行数据 (0.001 秒)