sqlite修改表格约束

- 已有表格

CREATE TABLE sentence_word (
	sw_no	INTEGER NOT NULL UNIQUE,
	word_name	varchar(10) NOT NULL,
	sentence_no	INTEGER NOT NULL,
	sentence_name	TEXT NOT NULL,
	PRIMARY KEY(sw_no AUTOINCREMENT),
	FOREIGN KEY(sentence_name) REFERENCES sentence(sentence_name),
	FOREIGN KEY(sentence_no) REFERENCES sentence(sentence_no),
	FOREIGN KEY(word_name) REFERENCES words(word_name)
);

添加修改和删除的约束 ON UPDATE CASCADE ON DELETE CASCADE

PRAGMA foreign_keys = OFF;

SAVEPOINT temp;

CREATE TABLE sentence_word_temp (
	sw_no	INTEGER NOT NULL UNIQUE,
	word_name	varchar(10) NOT NULL,
	sentence_no	INTEGER NOT NULL,
	sentence_name	TEXT NOT NULL,
	PRIMARY KEY(sw_no AUTOINCREMENT),
	FOREIGN KEY(sentence_name) REFERENCES sentence(sentence_name) ON UPDATE CASCADE ON DELETE CASCADE,
	FOREIGN KEY(sentence_no) REFERENCES sentence(sentence_no) ON UPDATE CASCADE ON DELETE CASCADE,
	FOREIGN KEY(word_name) REFERENCES words(word_name) ON UPDATE CASCADE ON DELETE CASCADE
);

INSERT INTO sentence_word_temp (sw_no, word_name, sentence_no,sentence_name) SELECT sw_no, word_name, sentence_no,sentence_name FROM sentence_word;

DROP TABLE sentence_word;

ALTER TABLE sentence_word_temp RENAME TO sentence_word;

PRAGMA foreign_keys = ON;

COMMIT;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值