java - 用键插入android数据库

标签 java android mysql

所以我想要一个自动递增的整数ID主字段。然后我还想要另一个带有文本字段的键。两个条目不能具有相同的 ID,也不能具有相同的文本字段。问题是,如果 ID 不同但文本字段相同,我仍然不希望插入它们。不幸的是,创建一个具有两个主键的表意味着它可以被插入。除了两个主键之外还有什么可以表达这一点吗?

最佳答案

一个表只能有一个主键。当你写的时候

CREATE TABLE T1 ... PRIMARY KEY (A, B)

您实际上并没有创建两个主键,而是创建一个复合(即多列)主键。在这种情况下,这意味着两行不能共享相同的 A 和 B 值。

如果您需要 A 和 B 本身都是唯一的,那么您需要使用 UNIQUE 约束(或者,唯一索引)。

来自SQLite documentation :

A UNIQUE constraint is similar to a PRIMARY KEY constraint, except that a single table may have any number of UNIQUE constraints. For each UNIQUE constraint on the table, each row must contain a unique combination of values in the columns identified by the UNIQUE constraint.

例如:

CREATE TABLE T1 (A INTEGER PRIMARY KEY, B INTEGER UNIQUE ...)

关于java - 用键插入android数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275361/

相关文章:

java - java中断言后出现NullPointerException

java - 以 root 身份运行 native android 可执行文件?

python - 从 MySQL 数据库推送功能

MySQL 触发器 - 获取 json 字段的新旧值之间的差异

python - 如何在 python 中为 MySQLdb 设置 max_allowed_pa​​cket 或等效项?

java - Playframework路线问题

java - 应该如何使用 LibGDX dispose() 方法?

java - mp3transform 文档

Android 控制台错误 : "requires .class compatibility set to 5.0. Please fix project properties"

android - adb 命令可以用于检查/更改 View 上的焦点吗?