仅当数据库中存在该表时才更新该表的 SQL
我有一个 mySQL 数据库,其中可能有一个名为 jason
的表。 数据库的单独实例可能没有 jason 表(它会有其他公共表)
我想对两个数据库运行简单的更新,但更新是针对 jason 表。
我知道我可以做类似的事情
DROP TABLE IF EXISTS `jason`;
是否可以运行更新,例如:
IF EXISTS `jason` UPDATE `jason` SET...
我似乎无法让任何东西工作。
I have a mySQL database that might have a table named jason
.
A separate instance of the database may not have the jason
table (it would have other tables in common)
I'd like to run a simple update against both databases but the update is for the jason
table.
I know I can do something like
DROP TABLE IF EXISTS `jason`;
Is it possible to run an Update something like:
IF EXISTS `jason` UPDATE `jason` SET...
I can't seem to get anything to work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
只需运行更新语句,如果表不存在,它将失败并且不会造成任何损坏。
Just run the update statement, if the table didn't exist, it will fail and cause no damage.
如果您命名一个不存在的表,则更新语句将无法编译。您需要生成动态 SQL 并仅在表存在时执行它。
If you name a non-existant table, the update statement will fail to compile. You'll need to generate dynamic SQL and execute it only when the table exists.
您还可以参考这些 mysql 文档。所有架构信息都在数据库中,因此本质上您可以以相同的方式执行任何查询。底部的示例。
You could also refer to these mysql docs. All the schema information is in a database, so essentially you can do any queries in the same fashion. Examples towards the bottom.
它不会失败,但如果你坚持,你可以做一个变通办法:
It won't fail but if you insist, you can do a work around: