仅当数据库中存在该表时才更新该表的 SQL

发布于 2024-08-13 01:34:30 字数 312 浏览 2 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

独闯女儿国 2024-08-20 01:34:30

只需运行更新语句,如果表不存在,它将失败并且不会造成任何损坏。

Just run the update statement, if the table didn't exist, it will fail and cause no damage.

祁梦 2024-08-20 01:34:30

如果您命名一个不存在的表,则更新语句将无法编译。您需要生成动态 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.

北风几吹夏 2024-08-20 01:34:30

您还可以参考这些 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.

皇甫轩 2024-08-20 01:34:30

它不会失败,但如果你坚持,你可以做一个变通办法:

IF EXISTS (SELECT * FROM Table1)
   UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
   INSERT INTO Table1 VALUES (...)

It won't fail but if you insist, you can do a work around:

IF EXISTS (SELECT * FROM Table1)
   UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
   INSERT INTO Table1 VALUES (...)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文