繁体   English   中英

如何从MySQL中的另一个表插入现有值

[英]How do i insert an existing values from another table in MySQL

我在这里想要做的是从表CompositionCollection中插入performDate值,以将其检索并更新到Compositions表中的performDate中,而无需手动键入它。 因此,每个组成都有从compositioncollection播放时的值。

成分表中的最后一个报价空间是日期。

CREATE TABLE Compositions(
CompositionId CHAR(6) NOT NULL,
Composer VARCHAR(25) NOT NULL,
Name VARCHAR(30) NOT NULL,
YearWritten VARCHAR(4) NOT NULL,
PerformerId CHAR(6) NULL,
PerformDate DATETIME NULL,
CONSTRAINT pk_compositions PRIMARY KEY (CompositionId)
);

CREATE TABLE CompositionCollection(
ConcertId CHAR(6) NOT NULL,
CompositionId INT NOT NULL,
PerformerId CHAR(6) NOT NULL,
PerformTime TIME NOT NULL,
PerformDate DATE NOT NULL,
CONSTRAINT pk_pTime PRIMARY KEY (PerformTime)
);


-- compositions data values
INSERT INTO Compositions VALUES 
('CC01', 'Alexander Borodin', 'Scherzo in a 
Flat', '1883', '', '2017-09-17'),
('CC02', 'Alexander Borodin', 'Symphony No 
2', '1869', '', ''),
('SC01', 'Beethoven', 'Symphony No 6', 
'1802', '', ''),
('SC02', 'Edward Elgar', 'Cello Concerto', 
'1997', '', '');

-- composition collection data values
-- All the values below is for one concert and they are all played at the 
-- same date
INSERT INTO CompositionCollection VALUES 
('123456', 'CC01', 'C012', 
'08:00:00', '2017-09-17'),
('123456', 'CC02', 'C012', 
'08:15:00', '2017-09-17'),
('123456', 'SC01', 'S512', 
'08:20:00', '2017-09-17'),
('123456', 'SC02', 'C012', 
'08:40:00', '2017-09-17');

您可以使用Trigger

CREATE TRIGGER last_played
AFTER INSERT
ON CompositionCollection FOR EACH ROW

BEGIN
 UPDATE Compositions SET PerformDate = New.PerformDate WHERE CompositionId = New.CompositionId;
END;

有关mySQL触发器的更多信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM