mst_staff.staffIdとリレーションのあるstaffIdと日付を主キーにしたmst_attendanceにselect文を使って、insert実行しようとしたら掲題のえらーがでました。
主キーが重複しているということだと思いますが、select文を確認しても日付とIdのどちらとも重複している行はありませんでした。
何が原因でどうすればよいのでしょうか。
テーブル作成時のSQL
SQL
1CREATE TABLE `mst_attendance` ( 2 `date` date NOT NULL, 3 `staffId` int(11) NOT NULL, 4 `attend_time` time DEFAULT NULL, 5 `leave_time` time DEFAULT NULL, 6 `working_time` float DEFAULT NULL, 7 `resting_time` float DEFAULT NULL, 8 `overwork_time` float DEFAULT NULL, 9 PRIMARY KEY (`date`,`staffId`) 10) ENGINE=InnoDB DEFAULT CHARSET=latin1 11 12CREATE TABLE `mst_staff` ( 13 `staffId` varchar(6) NOT NULL, 14 `password` varchar(20) NOT NULL, 15 `staffName` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, 16 `authorityId` int(11) NOT NULL, 17 `delete_flg` int(11) NOT NULL, 18 PRIMARY KEY (`staffId`) 19) ENGINE=InnoDB DEFAULT CHARSET=latin1 20
実行したSQL
SQL
1INSERT INTO mst_attendance( 2 date, 3 staffId 4) 5SELECT CURRENT_DATE , ms.staffId 6from mst_staff ms
発生したエラー
#1062 - '2019-05-20-0' は索引 'PRIMARY' で重複しています。
回答4件
あなたの回答
tips
プレビュー