Как мне указать первичный ключ в Sqlite - PullRequest
3 голосов
/ 09 июля 2009

Как определить указанный вами атрибут, такой как StudentId в таблице учеников, как первичный ключ в sqlite

Ответы [ 2 ]

14 голосов
/ 09 июля 2009
CREATE TABLE Student(
  id INTEGER PRIMARY KEY,
  first_name TEXT, 
  last_name TEXT
);

Из спецификации Sqlite:

Одно исключение из бесформенности SQLite - это столбец, тип которого INTEGER ПЕРВИЧНЫЙ КЛЮЧ. (И вы должны использовать "INTEGER" не "INT". Столбец типа INT PRIMARY KEY не имеет типа, как любой другой.) INTEGER ПЕРВИЧНЫЙ КЛЮЧ столбцы должны содержать 32-битные подписи целое число. Любая попытка вставить нецелые данные приведут к ошибка.

http://www.sqlite.org/datatypes.html

Вы также можете поместить первичный ключ в произвольные данные, например:

CREATE TABLE Student(id PRIMARY KEY, name)

Это немного рискованно, причина

INSERT INTO Student(1, "hello") 
INSERT INTO Student("1", "hello") 

приведет к двум строкам.

Если вам нужно уникальное ограничение для других вещей, вы можете попробовать использовать команду Создать индекс

5 голосов
/ 09 июля 2009
CREATE TABLE Students (
  StudentId INTEGER PRIMARY KEY,
  Name VARCHAR(80)
)

- это один простой способ.

...