Mysql 无法向表中添加外键/级联删除(无错误)
我有一张叫简历的桌子 这是表格导出:Mysql 无法向表中添加外键/级联删除(无错误),mysql,innodb,Mysql,Innodb,我有一张叫简历的桌子 这是表格导出: CREATE TABLE `resumes` ( `id` int(10) UNSIGNED NOT NULL, `title` varchar(100) COLLATE utf8_unicode_ci NOT NULL, `province_id` int(10) UNSIGNED NOT NULL, `city_id` int(10) UNSIGNED NOT NULL, `name` char(100) COLLATE utf8_u
CREATE TABLE `resumes` (
`id` int(10) UNSIGNED NOT NULL,
`title` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`province_id` int(10) UNSIGNED NOT NULL,
`city_id` int(10) UNSIGNED NOT NULL,
`name` char(100) COLLATE utf8_unicode_ci NOT NULL,
`last_name` char(100) COLLATE utf8_unicode_ci NOT NULL,
`email` char(50) COLLATE utf8_unicode_ci NOT NULL,
`mobile` char(255) COLLATE utf8_unicode_ci NOT NULL,
`phone` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
`address` char(200) COLLATE utf8_unicode_ci NOT NULL,
`confirm` tinyint(1) NOT NULL DEFAULT '0',
`image` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,
`deleted_at` timestamp NULL DEFAULT NULL,
`gender` tinyint(1) NOT NULL DEFAULT '0',
`bdate` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
`marrieg` tinyint(1) NOT NULL DEFAULT '0',
`military_service` tinyint(1) NOT NULL DEFAULT '0',
`text` text COLLATE utf8_unicode_ci,
`password` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`token` varchar(100) COLLATE utf8_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `resumes`
--
ALTER TABLE `resumes`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `email` (`email`),
ADD UNIQUE KEY `mobile` (`mobile`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `resumes`
--
ALTER TABLE `resumes`
MODIFY `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
我有另一个名为“resume”的表,我想在这个表中添加forign键约束和cascade delete,引用resume表,我运行这个代码
ALTER TABLE resume_researches
ADD CONSTRAINT `fk_resumes_resume_researches`
FOREIGN KEY (`resume_id` )
REFERENCES `resumes` (`id` )
ON DELETE CASCADE ;
这是输出
MySQL returned an empty result set (i.e. zero rows). (Query took 0.0150 seconds.)
ALTER TABLE resume_researches ADD CONSTRAINT `fk_resumes_resume_researches` FOREIGN KEY (`resume_id` ) REFERENCES `resumes` (`id` ) ON DELETE CASCADE
但是在phpmyadmin中没有关系视图,当我导出这个表时,这里就是结果
CREATE TABLE `resume_researches` (
`id` int(11) NOT NULL,
`resume_id` int(11) UNSIGNED NOT NULL,
`title` varchar(100) COLLATE utf8_persian_ci NOT NULL,
`text` text COLLATE utf8_persian_ci NOT NULL,
`date` varchar(50) COLLATE utf8_persian_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_persian_ci;
--
-- Indexes for dumped tables
--
--
-- Indexes for table `resume_researches`
--
ALTER TABLE `resume_researches`
ADD PRIMARY KEY (`id`),
ADD KEY `fk_resumes_resume_researches` (`resume_id`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `resume_researches`
--
ALTER TABLE `resume_researches`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
怎么了?为什么结构中没有对简历表的引用 外键不适用于MyISAM;改用InnoDB
不要对可变长度的列使用CHAR;使用VARCHAR
不要将排序规则utf8\uUnicode\uCI与utf8\uPersian\uCI混用。在有些情况下,这是可以的,但可能不是在这里