gpt4 book ai didi

mysql - SQL 条件插入或更新语句取决于一对列。使用唯一索引?

转载 作者:行者123 更新时间:2023-11-30 23:14:08 26 4
gpt4 key购买 nike

好的,我有一个表(在我的 MySQL 数据库中)如下:

CREATE TABLE IF NOT EXISTS `funddata` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ticker` varchar(128) NOT NULL,
`price_date` date NOT NULL,
`price` double NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

和一些示例数据:

INSERT INTO funddata (ticker, price_date, price) VALUES ("tick1", '2013-06-01', 36.2);
INSERT INTO funddata (ticker, price_date, price) VALUES ("tick2", '2013-06-01', 14.7);
INSERT INTO funddata (ticker, price_date, price) VALUES ("tick3", '2013-06-01', 102.5);
INSERT INTO funddata (ticker, price_date, price) VALUES ("tick1", '2013-07-01', 38.7);
INSERT INTO funddata (ticker, price_date, price) VALUES ("tick2", '2013-07-01', 16.2);

现在假设我想为 tick1 添加更多价格。如果该日期我要添加的价格已经存在于我的表格中,那么我想用新价格更新那里的内容,否则我只想将其作为新记录插入。

如果没有 2 条记录应该共享相同的代码和日期,那么从 (ticker, price_date) 中创建一个唯一索引是否有意义?如果是这样,我将如何做到这一点以及我将如何利用这样的索引。

最佳答案

CREATE UNIQUE INDEX index_name ON funddata(priceDate, price); 

然后使用INSERT ... ON DUPLICATE KEY UPDATE

但是,这仍然打破了第一范式。 http://en.wikipedia.org/wiki/First_normal_form

关于mysql - SQL 条件插入或更新语句取决于一对列。使用唯一索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18657714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com