mirror of
https://github.com/CodePhiliaX/Chat2DB.git
synced 2025-07-29 02:32:33 +08:00
Merge pull request #786 from e-mhui/fix-pg-sql-error
#785 fix pg ddl sql error
This commit is contained in:
@ -16,25 +16,20 @@ public class SQLConst {
|
||||
+ "array_to_string"
|
||||
+ "(\n"
|
||||
+ " array(\n"
|
||||
+ " select ' ' || concat_ws(' ',fieldName, fieldType, fieldLen, indexType, isNullStr, fieldComment"
|
||||
+ " select ' ' || concat_ws(' ',fieldName, fieldType, defaultValue, isNullStr"
|
||||
+ " ) as "
|
||||
+ "column_line\n"
|
||||
+ " from (\n"
|
||||
+ " select a.attname as fieldName,format_type(a.atttypid,a.atttypmod) as fieldType,(case when "
|
||||
+ "atttypmod-4>0 then\n"
|
||||
+ " atttypmod-4 else 0 end) as fieldLen,\n"
|
||||
+ " (case when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum "
|
||||
+ "and\n"
|
||||
+ " contype='p')>0 then 'PRI'\n"
|
||||
+ " when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and "
|
||||
+ "contype='u')>0\n"
|
||||
+ " then 'UNI'\n"
|
||||
+ " when (select count(*) from pg_constraint where conrelid = a.attrelid and conkey[1]=attnum and "
|
||||
+ "contype='f')>0\n"
|
||||
+ " then 'FRI'\n"
|
||||
+ " else '' end) as indexType,\n"
|
||||
+ " (case when a.attnotnull=true then 'not null' else 'null' end) as isNullStr,\n"
|
||||
+ " ' comment ' || col_description(a.attrelid,a.attnum) as fieldComment\n"
|
||||
+ " select a.attname as fieldName,format_type(a.atttypid,a.atttypmod) as fieldType,"
|
||||
+ " CASE WHEN \n"
|
||||
+ " (SELECT substring(pg_catalog.pg_get_expr(B.adbin, B.adrelid) for 128)\n"
|
||||
+ " FROM pg_catalog.pg_attrdef B WHERE B.adrelid = A.attrelid AND B.adnum = A.attnum AND A.atthasdef) IS NOT NULL THEN\n"
|
||||
+ " 'DEFAULT '|| (SELECT substring(pg_catalog.pg_get_expr(B.adbin, B.adrelid) for 128)\n"
|
||||
+ " FROM pg_catalog.pg_attrdef B WHERE B.adrelid = A.attrelid AND B.adnum = A.attnum AND A.atthasdef)\n"
|
||||
+ " ELSE\n"
|
||||
+ " ''\n"
|
||||
+ " END as defaultValue,"
|
||||
+ " (case when a.attnotnull=true then 'not null' else 'null' end) as isNullStr\n"
|
||||
+ " from pg_attribute a where attstattarget=-1 and attrelid = (select c.oid from pg_class c,"
|
||||
+ "pg_namespace n"
|
||||
+ " where\n"
|
||||
@ -114,13 +109,13 @@ public class SQLConst {
|
||||
+ " -- COMMENT COMMENT ON COLUMN sys_activity.id IS '主键';\n"
|
||||
+ " tableScript:= tableScript || chr(13)||chr(10) || chr(13)||chr(10) || array_to_string(\n"
|
||||
+ " array(\n"
|
||||
+ " SELECT 'COMMENT ON COLUMN' || tablename || '.' || a.attname ||' IS '|| ''''|| d.description "
|
||||
+ " SELECT 'COMMENT ON COLUMN ' || 'namespace.tablename' || '.' || a.attname ||' IS '|| ''''|| d.description "
|
||||
+ "||''''\n"
|
||||
+ " FROM pg_class c\n"
|
||||
+ " JOIN pg_description d ON c.oid=d.objoid\n"
|
||||
+ " JOIN pg_attribute a ON c.oid = a.attrelid\n"
|
||||
+ " WHERE c.relname=tablename\n"
|
||||
+ " AND a.attnum = d.objsubid),','|| chr(13)||chr(10)) ;\n"
|
||||
+ " AND a.attnum = d.objsubid),';'|| chr(13)||chr(10)) ;\n"
|
||||
+ "\n"
|
||||
+ " return tableScript;\n"
|
||||
+ "\n"
|
||||
|
Reference in New Issue
Block a user