我正在阅读 Django 教程并定义投票和选择模型。当我运行manage.py sql polls
查看 sql 语句时,我得到:
CREATE TABLE `polls_poll` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`question` varchar(200) NOT NULL,
`pub_date` datetime NOT NULL
);
CREATE TABLE `polls_choice` (
`id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
`poll_id` integer NOT NULL,
`choice_text` varchar(200) NOT NULL,
`votes` integer NOT NULL
);
ALTER TABLE `polls_choice` ADD CONSTRAINT `poll_id_refs_id_3aa09835`
FOREIGN KEY (`poll_id`) REFERENCES `polls_poll` (`id`);
为什么DjangoALTER
在应用外键时使用语句而不是在Create table
语句中执行?类似以下的内容似乎更简洁:
`poll_id integer NOT NULL REFERENCES polls_choice(id)`