首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >语句产生的结果与sql中的select all不同。

问语句产生的结果与sql中的select all不同。
EN

Stack Overflow用户
提问于 2022-09-01 17:25:34
回答 1查看 40关注 0票数 0

我目前正在尝试创建一个只有三个位置的剧院位置表。我导入了非规范化数据,我试图用以下语句来规范这些数据:

代码语言:javascript
复制
insert into theater(`name`, email, address, phone)
select distinct theater, theater_email, theater_address, theater_phone
from denormalized_tickets;

当我注释掉第一行并运行它时,我就得到了我想要的结果。

​

当我编写一个查询来查看戏剧表select * from theater;时,它会返回每12次重复的影院。

​

​

我该怎么解决这个问题?有什么东西我忽略了吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-01 18:28:38

正如上面的注释中所讨论的,每次执行INSERT都会创建新的行。如果您多次这样做,则每次可能会添加更多行。

Vasya建议创建一个唯一的索引来阻止使用相同值创建新行。这可能适用于给定的表,也可能不适用于给定的表。例如,如果希望允许多个行具有相同的值,怎么办?

另一件您可能想读到的东西是MySQL的替换语句。语法类似于INSERT,但是如果主键或唯一键的列中有重复,它首先删除旧行,然后插入新行。但是,如果您没有定义唯一的键,这不会有帮助,因为MySQL如何知道这是一个冲突?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73573328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档