sqlite3: как определить псевдоним столбца rowid (первичный ключ) - PullRequest
2 голосов
/ 30 декабря 2010

Используя SQLite3, если вы создаете таблицу следующим образом:

CREATE TABLE MyTable (
id int primary key,
--define other columns here--
)

получается, sqlite3_column_type(0) всегда возвращает SQLITE_NULL.Если я читаю бит , это вполне может быть задуманно, поскольку этот столбец фактически является псевдонимом внутреннего поля rowid.

Тем не менее, каков программный способ определенияопределенный столбец является / псевдонимом поля rowid?

(Возможно, связано, могу ли я использовать sqlite3_column_type(x)==SQLITE_NULL, чтобы определить, содержит ли поле текущая запись NULL?)

1 Ответ

2 голосов
/ 12 января 2011

В соответствии с http://www.sqlite.org/draft/lang_createtable.html#rowid

Столбец PRIMARY KEY становится целочисленным первичным ключом только в том случае, если объявленное имя типа является точно "INTEGER".Другие имена целочисленных типов, такие как «INT» или «BIGINT», «SHORT INTEGER» или «UNSIGNED INTEGER», заставляют столбец первичного ключа вести себя как обычный столбец таблицы с целочисленным сходством и уникальным индексом, а не как псевдоним для rowid.

Так что в вашем случае это "int", поэтому недопустимый псевдоним

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...