· 8 years ago · Aug 23, 2018, 01:30 AM
1How to update foreign key value in mysql database
2CREATE TABLE IF NOT EXISTS `categories` (
3 `id` int(11) unsigned NOT NULL auto_increment,
4 `name` varchar(20) NOT NULL,
5 `modified` int(10) unsigned NOT NULL,
6 PRIMARY KEY (`id`),
7) ENGINE=InnoDB DEFAULT CHARSET=utf8;
8
9CREATE TABLE IF NOT EXISTS `languages` (
10 `id` char(2) NOT NULL,
11 `name` varchar(20) NOT NULL,
12 PRIMARY KEY (`id`)
13) ENGINE=InnoDB DEFAULT CHARSET=utf8;
14
15CREATE TABLE IF NOT EXISTS `categories_languages` (
16 `id` int(11) unsigned NOT NULL auto_increment,
17 `category_id` int(11) unsigned NOT NULL,
18 `language_id` char(2) NOT NULL,
19 `translation` varchar(20) NOT NULL,
20 PRIMARY KEY (`id`),
21 KEY `fk_category_id_language_id` (`category_id`,`language_id`),
22 KEY `fk_language_id` (`language_id`)
23) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
24
25ALTER TABLE `categories_languages`
26 ADD CONSTRAINT `categories_languages_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE,
27 ADD CONSTRAINT `categories_languages_ibfk_2` FOREIGN KEY (`language_id`) REFERENCES `languages` (`id`) ON DELETE CASCADE;
28
29ALTER TABLE `categories_languages`
30 ADD CONSTRAINT `categories_languages_ibfk_1` FOREIGN KEY (`category_id`) REFERENCES `categories` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
31 ADD CONSTRAINT `categories_languages_ibfk_2` FOREIGN KEY (`language_id`) REFERENCES `languages` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
32
33SET foreign_key_checks = 0;
34UPDATE languages SET id='xyz' WHERE id='abc';
35UPDATE categories_languages SET language_id='xyz' WHERE language_id='abc';
36SET foreign_key_checks = 1;