【发布时间】:2018-11-01 09:48:14
【问题描述】:
我使用过许多其他人使用外键构建的数据库,但最近才开始学习如何将它们包含在内。
从this answer可以看出,下面两个有'FOREIGN KEY'和没有'FOREIGN KEY'的语句是等价的:
author_id INTEGER REFERENCES author(id)
author_id INTEGER,
FOREIGN KEY(author_id) REFERENCES author(id)
然后以下在 Postgres 上完美运行,但在 MySQL 中产生错误:
CREATE TABLE cities (
city varchar(80) primary key,
location point
);
CREATE TABLE weather (
city varchar(80) references cities(city),
temp_lo int,
temp_hi int,
prcp real,
date date
);
(在这里测试 - https://dbfiddle.uk/)
这两种方言的语法有何不同?
【问题讨论】:
-
为什么不在 Postgres 中尝试一下,看看会发生什么?
-
我目前只安装了 Postgres.. - 怀疑它们都可以工作。你怎么看?
-
你可以使用像dbfiddle这样的工具来做你需要的测试(MySQL / PostgreSQL)。
-
谢谢@wchiquito 我认为有些不同,只是用代码编辑了问题,该代码在一个但不能在另一个中工作。
标签: mysql sql postgresql