これらのテーブルに似た2つのテーブルがあります
メンバー
CREATE TABLE IF NOT EXISTS `members` (
`ID` int(10) unsigned NOT NULL auto_increment,
`email` varchar(255) NOT NULL,
`password` varchar(100) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
アーカイブされたメンバー
CREATE TABLE IF NOT EXISTS `archived_members` (
`ID` int(10) unsigned NOT NULL,
`email` varchar(255) NOT NULL,
`password` varchar(100) NOT NULL,
`archived_date` timestamp NOT NULL,
`archived_type` varchar(20) NOT NULL
) ENGINE=ARCHIVE DEFAULT CHARSET=utf8 ;
私は通常、このクエリステートメントを使用してテーブル間で行を移動します これは単なる例です
INSERT INTO `archived_members` (`ID`, `email`, `password`) SELECT * FROM `members` WHERE `ID`=1;
DELETE FROM `members` WHERE `ID`=1;
しかし、私の場合(この場合)、archived_members
テーブルの他のフィールドの値を指定する必要がありますarchived_date
& archived_type
。したがって、私は試しました
INSERT INTO `archived_members` (`ID`, `email`, `password`) SELECT * FROM `members` WHERE `ID`=1;
UPDATE `archived_members` SET `archived_date`=CURRENT_DATE(), `archived_type`='reason of archving' WHERE `ID`=1;
DELETE FROM `members` WHERE `ID`=1;
archived_members
残念ながら、テーブルのエンジンはARCHIVEであるべきだと思うので、テーブルに挿入された後に行を更新することはできません。
助けてください!