【发布时间】:2021-07-16 20:21:20
【问题描述】:
我有两个表“市场”和“统计”。我有一个插入到市场的触发器,它接收这些新数据并将其插入到统计数据中,如下所示:
CREATE TRIGGER `marketplace_to_stats`
BEFORE INSERT ON `marketplace`
FOR EACH ROW
INSERT INTO
stats (stats.studentID, stats.listingID, stats.listingName, stats.date, stats.percent, stats.listingViews, stats.listingWatching, stats.listingSales)
VALUES(NEW.studentID, NEW.listingID, NEW.listingName, curdate(), 0, 0, 0, 0)
但是,marketplace 表中的 listingID 是自动递增的,并且我使用的插入语句会忽略该列。因此,我的触发器没有从市场表中收集自动递增的值,而是每次都插入 0。
如何更改此触发器语句以收集并插入统计表,在市场表上生成的自动递增值?
表格:
--
-- Table structure for table `marketplace`
--
CREATE TABLE `marketplace` (
`listingID` int(11) NOT NULL,
`studentID` int(11) NOT NULL,
`listingName` tinytext NOT NULL,
`fileName` tinytext NOT NULL,
`listingBio` varchar(1500) NOT NULL,
`listingPrice` decimal(5,2) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Table structure for table `stats`
--
CREATE TABLE `stats` (
`studentID` int(11) NOT NULL,
`listingID` int(11) NOT NULL,
`date` date NOT NULL,
`listingName` tinytext NOT NULL,
`percent` decimal(5,2) NOT NULL,
`listingViews` int(11) NOT NULL,
`listingWatching` int(11) NOT NULL,
`listingSales` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
【问题讨论】:
-
你没有展示触发因素,这使得它真的、真的、真的很难说什么。
-
@GordonLinoff 抱歉,我以为我一开始说的很清楚,我将编辑代码以包含完整的声明。
标签: sql triggers auto-increment