SQL 外键和引用其他表 - 一致错误

SQL foreign keys & referencing other tables - consistent errors

在菜鸟数据库的经典案例中,我无法让我的代码工作!这是由这个交集 table 解决的多对多关系。

CREATE TABLE logging (
songID int FOREIGN KEY REFERENCES song (songID),
playlistID int FOREIGN KEY REFERENCES playlist (playlistID),
PRIMARY KEY (songID , PlaylistID)
);

我似乎总是得到

的错误
ORA-00904: "SONGID": invalid identifier

ORA-00907: missing right parenthesis

目前另外两个table如下:

CREATE TABLE song (
songID int PRIMARY KEY,
name VARCHAR2(100)
);

CREATE TABLE playlist (
playlistID int PRIMARY KEY,
name VARCHAR2(100)
);

而且我不确定如何删除它或继续。我正在使用 Oracle 11g。

怎么样

CREATE TABLE logging (
songID int,
playlistID int,
CONSTRAINT pk_logging PRIMARY KEY (songID),
CONSTRAINT fk_logging_song FOREIGN KEY(songID) REFERENCES song(songID),
CONSTRAINT fk_logging_playlist FOREIGN KEY(playlistID) REFERENCES playlist(playlistID)
);

这对我适用于 Oracle Apex。

CREATE TABLE logging (
songID int,
playlistID int,
PRIMARY KEY (songID , PlaylistID),
FOREIGN KEY (songID) REFERENCES song (songID),
FOREIGN KEY (playlistID) REFERENCES playlist (playlistID)
);

这就是 mySQL 对象创建的方式,所以你可以这样做或者 Zajonc 在我上面说的方式。

您定义它的方式,适用于 SQL Server / Oracle / MS Access。很奇怪它不适合你。