Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 带或不带外键的引用之间有什么区别_Sql_Sqlite_Relational Database_Android Sqlite_Ddl - Fatal编程技术网

Sql 带或不带外键的引用之间有什么区别

Sql 带或不带外键的引用之间有什么区别,sql,sqlite,relational-database,android-sqlite,ddl,Sql,Sqlite,Relational Database,Android Sqlite,Ddl,关于SQLite,带或不带外键的引用之间有什么区别 这两者有什么区别 CREATE TABLE players_set ( _id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, player_id INTEGER REFERENCES players ( _id ) ON DELETE CASCADE, players_set_id INTEG

关于
SQLite
,带或不带外键的引用之间有什么区别

这两者有什么区别

CREATE TABLE players_set ( 
    _id            INTEGER PRIMARY KEY AUTOINCREMENT
                           NOT NULL,
    player_id      INTEGER REFERENCES players ( _id ) ON DELETE CASCADE,
    players_set_id INTEGER REFERENCES players_set_names ( _id ) 
);
这是:

CREATE TABLE players_set ( 
    _id            INTEGER PRIMARY KEY AUTOINCREMENT
                           NOT NULL,
    player_id INTEGER,
    players_set_id INTEGER REFERENCES players_set_names ( _id ),
    FOREIGN KEY (player_id) REFERENCES players ( _id ) ON DELETE CASCADE        
);
我发现了另一个问题:

我读过,但它并没有让我明白


确切地说,我在
Android
上使用SQLite(因此使用了标签)。我不知道这是否有什么不同,但如果它有自己的怪癖,那么我想了解一下。

外键的语法比在列定义中内联定义它更灵活(例如,它允许您定义复合外键,其中引用列中应存在两个或多个字段的组合)


在您的例子中,两个DDL语句之间没有区别。可以说外键的内联定义只不过是语法上的糖分。

如果您必须使用MySQL,不要使用第一个版本:MySQL将忽略外键定义(即不会创建它)但我不会告诉你。@horse没有名字或不使用mysql;)@NeilMcGuigan:我完全同意;)