このトリガーを変更して、sortorder
テーブルに2つの列値(sortOrderId
、sortOrder
)が挿入されるようにすることはできますか?
の価値はどのようにsortOrder
見つかりましたか?
それが既知であり、テーブルに挿入できる場合、それはimage
テーブルにも挿入できsortorder
ますか?
-- Trigger DDL Statements
DELIMITER $$
USE `nextcart`$$
CREATE
DEFINER=`root`@`localhost`
TRIGGER `nextcart`.`insert_sortorderid`
BEFORE INSERT ON `nextcart`.`image`
FOR EACH ROW
BEGIN
INSERT INTO sortorder SET sortOrderId = NULL, sortOrder = NEW.sortOrder;
SET NEW.sortOrderId = (SELECT LAST_INSERT_ID());
END;
$$
CREATE TABLEソート順:
delimiter $$
CREATE TABLE `sortorder` (
`sortOrderId` int(11) NOT NULL AUTO_INCREMENT,
`sortOrder` tinyint(4) NOT NULL,
PRIMARY KEY (`sortOrderId`),
KEY `sort_order` (`sortOrderId`,`sortOrder`),
CONSTRAINT `fk_sortOrderId` FOREIGN KEY (`sortOrderId`) REFERENCES `image` (`imageId`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8$$
CREATE TABLEイメージ:
delimiter $$
CREATE TABLE `image` (
`imageId` int(11) NOT NULL AUTO_INCREMENT,
`imageFileName` varchar(45) DEFAULT NULL,
`imagePath` varchar(255) DEFAULT NULL,
`imageTitle` varchar(100) DEFAULT NULL,
`imageAlt` varchar(100) DEFAULT NULL,
`imageWidth` int(11) DEFAULT NULL,
`imageHeight` int(11) DEFAULT NULL,
`classId` int(11) DEFAULT NULL,
`imageSizeId` tinyint(4) NOT NULL,
`isImageEnabled` bit(1) DEFAULT b'0',
`sortOrderId` int(11) DEFAULT NULL,
PRIMARY KEY (`imageId`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8$$
エラーメッセージ:
エラー1054:「NEW」SQLステートメントの不明な列「sortOrder」:
CREATE TRIGGER insert_sortorderid BEFORE INSERT ON image FOR EACH ROW BEGIN INSERT INTO nextcart.sortorder SET sortOrderId = NULL、sortOrder = NEW.sortOrder; SET NEW.sortOrderId =(SELECT LAST_INSERT_ID()); 終わり; フェイルバックスクリプトの実行中にエラーが発生しました。詳細は以下の通りです。エラー1050:テーブル'image'は既に存在しますSQLステートメント:CREATE TABLEimage
(imageId
int(11)NOT NULL AUTO_INCREMENT、
imageFileName
varchar(45)DEFAULT NULL、imagePath
varchar(255)DEFAULT NULL、imageTitle
varchar(100)DEFAULT NULL、imageAlt
varchar(100)DEFAULT NULL 、imageWidth
int(11)DEFAULT NULL、
imageHeight
int(11)DEFAULT NULL、classId
int(11)DEFAULT NULL、imageSizeId
tinyint(4)NOT NULL、isImageEnabled
bit(1)DEFAULT b'0'、sortOrderId
int(11)DEFAULT NULL、PRIMARY KEY(imageId
))ENGINE = InnoDB AUTO_INCREMENT = 5 DEFAULT CHARSET = utf8