我是靠谱客的博主 土豪美女,最近开发中收集的这篇文章主要介绍java中执行ddl语句,java – 我们可以在预准备语句(PostgreSQL)中使用DDL命令吗?,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

是的,如果您使用EXECUTE并将其包装在FUNCTION中,则可以.函数调用允许您传递参数,在FUNCTION中使用字符串操作来修改DDL语句.最后,在FUNCTION中使用EXECUTE就是这样.以下是参数化CREATE SEQUENCE语句的简单示例…

DROP FUNCTION sf.start_mc(integer);

CREATE FUNCTION sf.start_mc(thefirst integer) RETURNS void AS $$

BEGIN

EXECUTE format('CREATE SEQUENCE sf.mastercase START %s',thefirst);

END;

$$LANGUAGE plpgsql;

我们使用字符串函数“format”来操作语句并包含传递给函数的参数.当然,您的SQL看起来很不寻常,特别是如果在调用它之前包含CREATE FUNCTION.这个例子来自我最近做过的数据迁移工作.在创建函数后,我们使用它如下:

DROP SEQUENCE sf.mastercase;

-- the following uses the above function to set the starting value of a new sequence based on the last used

-- in the widget table

select sf.start_mc((select substring("widgetId",4)::integer + 1 from widgets

where "widgetId" like 'MC-%'

order by "widgetId" desc

limit 1));

请注意,外部SELECT不会选择任何内容,它只是放置一个函数调用的地方.作为参数传递的数字来自内部SELECT,它包含在括号中.一个更简单的电话会是

select sf.start_mc(42);

您可以在CREATEd FUNCTION中包装任何内容.但这确实意味着您仍然坚持使用PostgreSQL,并且需要将您的数据库架构和架构更改集成到您的开发过程中作为一等公民.

最后

以上就是土豪美女为你收集整理的java中执行ddl语句,java – 我们可以在预准备语句(PostgreSQL)中使用DDL命令吗?的全部内容,希望文章能够帮你解决java中执行ddl语句,java – 我们可以在预准备语句(PostgreSQL)中使用DDL命令吗?所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部