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  )