github.com/unionj-cloud/go-doudou/v2@v2.3.5/toolkit/dbvendor/postgres/template.go (about) 1 package postgres 2 3 var ( 4 createTable = `CREATE TABLE IF NOT EXISTS {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Name}}" ( 5 {{- range $i, $co := .Columns }} 6 {{- if $i}},{{end}} 7 "{{$co.Name}}" {{$co.Type}} {{if $co.Nullable}}NULL{{else}}NOT NULL{{end}}{{if $co.Default}} DEFAULT {{if hasSuffix $co.Default "()"}}{{$co.Default}}{{else}}'{{$co.Default}}'{{end}}{{end}} 8 {{- end }} 9 {{- if .Pk }}, 10 PRIMARY KEY ({{- range $i, $co := .Pk }}{{- if $i}},{{end}}"{{$co}}"{{- end }}) 11 {{- end }} 12 ) 13 {{- if .Inherited }} 14 INHERITS ({{.Inherited}}) 15 {{- end }}; 16 17 {{- range $co := .Columns }} 18 COMMENT ON COLUMN {{if $.TablePrefix }}"{{$.TablePrefix}}".{{end}}"{{$.Name}}"."{{$co.Name}}" IS {{if $co.Comment}}$${{$co.Comment}}$${{else}}''{{end}}; 19 {{- end }} 20 21 {{- range $idx := .Indexes }} 22 CREATE {{if eq $idx.NoneUnique 0}}UNIQUE{{end}} INDEX IF NOT EXISTS {{ $idx.Name }} 23 ON {{if $.TablePrefix }}"{{$.TablePrefix}}".{{end}}"{{$.Name}}"({{- range $i, $co := $idx.Columns }}{{- if $i}},{{end}}"{{$co}}"{{- end }}); 24 {{- end }} 25 ` 26 27 dropTable = `DROP TABLE "{{.Name}}";` 28 29 alterTable = `{{define "change"}} 30 {{if .OldName}}ALTER TABLE {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}" RENAME COLUMN "{{.OldName}}" TO "{{.Name}}";{{end}} 31 ALTER TABLE {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}" ALTER COLUMN "{{.Name}}" TYPE {{.Type}}; 32 ALTER TABLE {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}" ALTER COLUMN "{{.Name}}" {{if .Nullable}}DROP{{else}}SET{{end}} NOT NULL; 33 ALTER TABLE {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}" ALTER COLUMN "{{.Name}}" {{if .Default}}SET DEFAULT {{.Default}}{{else}}DROP DEFAULT{{end}}; 34 COMMENT ON COLUMN {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}"."{{.Name}}" IS {{if .Comment}}$${{.Comment}}$${{else}}''{{end}}; 35 {{end}} 36 37 {{define "add"}} 38 ALTER TABLE {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}" ADD COLUMN "{{.Name}}" {{.Type}} {{if .Nullable}}NULL{{else}}NOT NULL{{end}} {{if .Default}}DEFAULT {{.Default}}{{end}}; 39 COMMENT ON COLUMN {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}"."{{.Name}}" IS {{if .Comment}}$${{.Comment}}$${{else}}''{{end}}; 40 {{end}} 41 42 {{define "drop"}} 43 ALTER TABLE {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.Table}}" DROP COLUMN "{{.Name}}"; 44 {{end}} 45 ` 46 47 insertIntoReturningPk = `INSERT INTO {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.TableName}}" 48 ({{- range $i, $co := .InsertColumns}} 49 {{- if $i}},{{end}} 50 "{{$co.Name}}" 51 {{- end }}) 52 VALUES ({{- range $i, $co := .InsertColumns}} 53 {{- if $i}},{{end}} 54 ? 55 {{- end }}) RETURNING {{ range $i, $co := .Pk }}"{{$co.Name}}"{{- end }}; 56 ` 57 58 insertInto = `INSERT INTO {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.TableName}}" 59 ({{- range $i, $co := .InsertColumns}} 60 {{- if $i}},{{end}} 61 "{{$co.Name}}" 62 {{- end }}) 63 VALUES ({{- range $i, $co := .InsertColumns}} 64 {{- if $i}},{{end}} 65 ? 66 {{- end }}); 67 ` 68 69 insertIntoBatch = `INSERT INTO {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.TableName}}" 70 ({{- range $i, $co := .InsertColumns}} 71 {{- if $i}},{{end}} 72 "{{$co.Name}}" 73 {{- end }}) 74 VALUES {{- range $i, $ro := .Rows}} 75 {{- if $i}},{{end}} 76 ({{- range $i, $co := $.InsertColumns}} 77 {{- if $i}},{{end}} 78 ? 79 {{- end }}) 80 {{- end }}; 81 ` 82 83 updateTable = `UPDATE {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.TableName}}" 84 SET 85 {{- range $i, $co := .UpdateColumns}} 86 {{- if $i}},{{end}} 87 "{{$co.Name}}"=? 88 {{- end }} 89 WHERE {{ range $i, $co := .Pk }}{{- if $i}} and {{end}}"{{$co.Name}}"=?{{- end }}; 90 ` 91 92 deleteFrom = `DELETE FROM {{if .TablePrefix }}"{{.TablePrefix}}".{{end}}"{{.TableName}}" 93 WHERE {{ range $i, $co := .Pk }}{{- if $i}} and {{end}}"{{$co.Name}}"=?{{- end }}; 94 ` 95 96 selectFromById = `SELECT * FROM "{{.TableName}}" 97 WHERE {{ range $i, $co := .Pk }}{{- if $i}} and {{end}}"{{$co.Name}}"=?{{- end }}; 98 ` 99 )