Как определить ваш указанный атрибут как StudentId в студенческой таблицы в качестве первичного ключа в SQLiteКак определить первичный ключ в Sqlite
ответ
CREATE TABLE Student(
id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT
);
Из Sqlite спецификации:
одно исключение безличность SQLite - это столбец, тип которого INTEGER PRIMARY KEY. (И вы должны использовать «INTEGER», а не «INT». Столбец типа INT PRIMARY KEY безличен, как и любой другой.) Столбцы INTEGER PRIMARY KEY должны содержать 32-разрядное целое число . Любая попытка вставить нецелые данные приведет к ошибке .
http://www.sqlite.org/datatypes.html
Вы можете также поместить первичный ключ произвольного blobish данных, например:
CREATE TABLE Student(id PRIMARY KEY, name)
его немного рискованное дело
INSERT INTO Student(1, "hello")
INSERT INTO Student("1", "hello")
приведет в два ряда.
Если вам нужно уникальное ограничение на других вещах, вы можете попробовать использовать команду Create Index
CREATE TABLE Students (
StudentId INTEGER PRIMARY KEY,
Name VARCHAR(80)
)
один простой способ.
@Sinan: Смотрите мой комментарий выше. Я также не вижу вашего лучшего предложения здесь ... –
@Alex, note VARCHAR и TEXT полностью взаимозаменяемы в Sqlite. Предел varchar (80) бессмыслен и игнорируется Sqlite. –
@Sam, конечно - «все строки» в любом случае в SQLite (за исключением того, что ограничение на первичный ключ полезно, будучи целым). Я по-прежнему предпочитаю писать свой тип схемы, поэтому я не собираюсь подниматься, когда я записывая их в MySQL, PostgreSQL и т. п. -) –
- 1. sqlite - программно определить первичный ключ (ы)
- 2. Как изменить первичный ключ записи в sqlite?
- 3. Только первичный ключ вставки SQLite
- 4. SQLite не сохраняет первичный ключ
- 5. Как определить составной первичный ключ в SQLAlchemy
- 6. Как определить составной первичный ключ в SQL?
- 7. Android SQLite, как изменить первичный ключ автоинкремента?
- 8. Android, SQLite .... первичный ключ вставлен как null
- 9. Grails: как определить первичный ключ домена?
- 10. SQLite: двойной первичный ключ и автоинкремент
- 11. Определить составной первичный ключ в Entity Framework
- 12. SQLITE: Невозможно удалить неназванный первичный ключ
- 13. Почему r/sqlite требует первичный ключ?
- 14. SQLite - Можно ли сделать нецелый первичный ключ?
- 15. Почему SQLite не увеличивает мой первичный ключ?
- 16. Android - SQLite AUTOINCREMENT не увеличивает первичный ключ
- 17. Первичный ключ Sqlite для нескольких столбцов
- 18. Таблица SQLite, которая автоматически увеличивает первичный ключ
- 19. SQLITE INSERT с идентификатором вручную (первичный ключ)
- 20. SQLite вставить или выбрать первичный ключ
- 21. Microsoft.AspNet.Identity не может определить первичный ключ INT?
- 22. Случайный nvarchar (255) id как первичный ключ в SQLite
- 23. Как создать первичный ключ автоматического прироста в SQLite
- 24. Первичный ключ вводится как null в android sqlite
- 25. Как добавить первичный ключ из существующей таблицы в SQLite?
- 26. В Android Sqlite ROWID так же, как и первичный ключ?
- 27. varchar() первичный ключ или int первичный ключ?
- 28. Составной первичный ключ против автоинкрементируемого Первичный ключ
- 29. Композитный первичный ключ в Yesod
- 30. Как определить и использовать составной первичный ключ в Apache OFBiz
Обратите внимание, что вы должны сделать это в инструкции CREATE TABLE. SQLite не может изменять ограничения в инструкции ALTER TABLE. –
@ Синан: Дайте мне перерыв. Прежде всего, вы не можете иметь PK как нечто не целое в SQLite. Во-вторых, существует одна конвенция, в которой говорится о том, чтобы отделить значимые данные от идентификаторов строк. Поэтому вы должны добавить дополнительный столбец для идентификатора студента, а не использовать ПК. Наконец, вы предполагаете, что что-то о схеме OP не лучше, чем ответчик. Напишите новый ответ, но вы не имеете права отмечать это. –
@Ic: «у вас не может быть PK, поскольку что-то не целое в SQLite» совершенно неверно - вы, конечно, можете иметь TEXT PK (конечно, это не может быть автоинкремент); откуда вы взяли эту идею? –