如果是,请提供一个后视的例子或替代方案。
我正在尝试提取不带‘’的序列名称
select table_name,
column_name,
regexp_replace(substring(column_default from '''.*(?='')'),'''','','g') as sequence
FROM information_schema.columns 发布于 2018-05-09 06:25:39
在9.6版本中,它接受使用(?<=re),documentation here的正面外观。
发布于 2011-08-03 15:55:58
在我最后检查过的sql级别,它不支持它,但是如果绝对必要的话,你可以使用plperl来解决这个限制。(不过,繁重的正则表达式通常不属于DB级别...)
在您的特定示例中,请考虑使用负类:[^'] (根据需要对其进行转义)或non-greedy wildcard: .*?。
除了您的特定问题之外,除非您实际手动创建序列,否则它的名称将始终是:
tablename_colname_seq另外,如果您在应用程序中使用多个模式和搜索路径,则以下两个默认值具有不同的行为:
nextval('foo'::regclass) -- find foo once
nextval('foo'::text) -- find foo each timehttps://stackoverflow.com/questions/6923249
复制相似问题