FOREIGN KEY

mysql ERROR 3780 (HY000): Referencing column '... and referenced column '....' in foreign key constraint '...' are incompatible

Forums:

ERROR 3780 (HY000): Referencing column '... and referenced column '....' in foreign key constraint '...' are incompatible.

Например:

ERROR 3780 (HY000): Referencing column 'category_id' and referenced column 'id' in foreign key constraint 'subcategories_ibfk_1' are incompatible.

Для запроса:

postgresql -- Пример создания таблицы с внешним ключом (foreign key) с помощью миграции (Symfony)

Создание таблицы реализовано с помощью миграции Symfony4. Но если вам требуется чистый код SQL, не пугайтесь, - просто возьмите код, передаваемый в качестве аргумента методу addSql(). Его же можно напрямую вводить в консоли БД.

Собственно пример создания таблицы в PostgreSQL. Помимо непосредственно полей, создаются Constraint-ы (Primary key, foreign key) и Sequence (генератор последовательности).

yii2 migrate -- Ошибка Can't write; duplicate key in table

При попытке применить миграцию для создания таблицы с внешним ключом (foreign key), возникает ошибка:

'SQLSTATE[23000]: Integrity constraint violation: 1022 Can't write; duplicate key in table '#sql-36f_c'
The SQL being executed was: ALTER TABLE `corrections` ADD CONSTRAINT `goodId` FOREIGN KEY (`goodId`) REFERENCES `goods` (`id`) ON DELETE CASCADE ON UPDATE CASCADE'

yii2 migrate -- Ошибка Cannot add foreign key constraint

При попытке применить миграцию для создания таблицы с внешним ключом (foreign key), возникает ошибка:

General error: 1215 Cannot add foreign key constraint
The SQL being executed was: ALTER TABLE `images` ADD CONSTRAINT `goodId` FOREIGN KEY (`goodId`) REFERENCES `goods` (`id`) ON DELETE CASCADE'

В моём случае это происходило по причине того, что поле, которое предлагалось сделать внешним ключом таблицы не совпадало по типу со связанным полем первичной таблицы.

yii2 Создание/удаление таблицы с внешним ключом (foreign key, миграция)

  1. Для начала прописываем в консоли команду для создания таблицы в базе данных с помощью миграции:
    ./yii migrate/create create_name_table

    Подробнее о миграциях здесь

mysql Создание таблицы с внешним ключом, ссылкой на другую таблицу -- пример FOREIGN KEY SQL, ON DELETE CASCADE

Forums:

Пример создания внешнего ключа

Создадим таблицу "слайдер":

CREATE TABLE `Slider` (
	`sliderID` INT(11) NOT NULL AUTO_INCREMENT,
	`title` VARCHAR(255) NOT NULL,
	`text` TEXT NULL,
	`isActive` TINYINT(1) NULL DEFAULT '1',
	PRIMARY KEY (`sliderID`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;

Затем связанную с этими данными слайдеров таблицу галереи (ответственна за хранения набора картинок для каждого слайдера - также есть поля подписи и ссылки для каждой страницы):

Subscribe to RSS - FOREIGN KEY