@yii16

Создание таблицы в Yii2?

Нужна таблица с составным PRIMARY KEY, уникальным. Запрос к БД такой:
CREATE TABLE `test33` (
    id_1 MEDIUMINT,
    id_2 MEDIUMINT,
    PRIMARY KEY (id_1, id_2)
)


Я сделал:
$this->createTable('test33', [
            'id_1' => $this->primaryKey(),
            'id_2' => $this->primaryKey(),
        ]);

Но трансформируется это в запрос ниже. Понятно что надо убрать из него AUTO_INCREMENT у обоих столбцов, но как это в миграции прописать?
'SQLSTATE[42000]: Syntax error or access violation:
1075 Incorrect table definition;
there can be only one auto column and it must be defined as a key
The SQL being executed was: CREATE TABLE `test3333` (
        `id_1` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        `id_2` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY
)'
  • Вопрос задан
  • 715 просмотров
Решения вопроса 1
Maksclub
@Maksclub
maksfedorov.ru
$this->createTable('test33', [
            'id_1' => $this->integer(11)->notNull(),
            'id_2' => $this->integer(11)->notNull(),
        ]);

$this->addPrimaryKey('pk-ids', 'test33, ['id_1', 'id_2']);


В данном случае также исключаются повторы совпадений, то есть пара id_1=55 и id_2=66 будет уникальной
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы