как я могу создать таблицу с двумя первичными ключами с помощью $cordovaSQLite?
Мой код:
$cordovaSQLite.execute(db, 'CREATE TABLE IF NOT EXISTS mytable(id INTEGER PRIMARY KEY AUTOINCREMENT, num INTEGER PRIMARY KEY, text TEXT)');
Это возможно?
как я могу создать таблицу с двумя первичными ключами с помощью $cordovaSQLite?
Мой код:
$cordovaSQLite.execute(db, 'CREATE TABLE IF NOT EXISTS mytable(id INTEGER PRIMARY KEY AUTOINCREMENT, num INTEGER PRIMARY KEY, text TEXT)');
Это возможно?
Установка двух первичных ключей невозможна, но вы можете установить уникальное ограничение для любых полей, которые вы хотите использовать в качестве первичного ключа. Вы можете эмулировать автоинкремент в этом поле, посмотрев на этот вопрос: -поле первичного ключа. Надеюсь это поможет.
INSERT INTO mytable (id, num, text) VALUES ((SELECT IFNULL(MAX(id), 0)) + 1 FROM mytable), (SELECT IFNULL(MAX(num), 0)) + 1 FROM mytable), 'text here')
. Дополнительные сведения см. здесь.
- person Ikenna Anthony Okafor; 28.01.2017
num
(в данном случае столбец id автоматически увеличивается) запрос будет таким: INSERT INTO mytable (num, text) VALUES ((SELECT IFNULL(MAX(num), 0)) + 1 FROM mytable), 'text here')
.
- person Ikenna Anthony Okafor; 28.01.2017
AUTOINCREMENT
, так как он накладывает большие накладные расходы. - person Ankh   schedule 23.01.2017