Android SQLite中的多主键

Jai*_*hai 3 sqlite syntax null android primary-key

在SQLite for Android中,添加多主键的正确方法是什么?

目前我有:

String Create_table = "CREATE TABLE project ( keyId INTEGER PRIMARY KEY, keyName TEXT PRIMARY KEY)";
Run Code Online (Sandbox Code Playgroud)

我想到的替代方法是:

   String Create_table = "CREATE TABLE project (keyID INTEGER, keyName TEXT, PRIMARY KEY(keyID, keyName))";
Run Code Online (Sandbox Code Playgroud)

两者都有效吗?如果是这样,哪个更好?另外我如何禁止NULL值?

Luc*_*fer 7

不,不可能为单个表创建多个主键.这是任何SQL的基本规则.但是,您可以使用其他约束(如带有索引的UNIQUE)来实现此目的.

这不是有效的SQL语法:

String Create_table ="CREATE TABLE项目(keyId INTEGER PRIMARY KEY,keyName TEXT PRIMARY KEY)";

在其他方面,您可以为多列创建主键,如下所示:

Create Table yourTableName (col1, col2, col3, PRIMARY KEY (col1, col2));
Run Code Online (Sandbox Code Playgroud)

如何禁止NULL值?

您可以使用NOT NULL约束,它不允许您输入NULL值.

  • 我们可以从主键列中获取一列作为自动增量 (2认同)