Skip to content

Commit ff9485b

Browse files
authored
Merge pull request #5 from yosukeyoshida/fix/create-insert-sql-only-pk
fix create insert sql only auto generated PK
2 parents 83d598d + 1bfc0b5 commit ff9485b

File tree

1 file changed

+20
-15
lines changed

1 file changed

+20
-15
lines changed

funcmap.go

+20-15
Original file line numberDiff line numberDiff line change
@@ -116,25 +116,30 @@ func placeholders(l []string) string {
116116
func createInsertSQL(st *Struct) string {
117117
var sql string
118118
sql = "INSERT INTO " + st.Table.Name + " ("
119-
var colNames []string
120-
for _, c := range st.Table.Columns {
121-
if c.IsPrimaryKey && st.Table.AutoGenPk {
122-
continue
123-
} else {
124-
colNames = append(colNames, c.Name)
119+
120+
if len(st.Table.Columns) == 1 && st.Table.Columns[0].IsPrimaryKey && st.Table.AutoGenPk{
121+
sql = sql + st.Table.Columns[0].Name + ") VALUES (DEFAULT)"
122+
} else {
123+
var colNames []string
124+
for _, c := range st.Table.Columns {
125+
if c.IsPrimaryKey && st.Table.AutoGenPk {
126+
continue
127+
} else {
128+
colNames = append(colNames, c.Name)
129+
}
125130
}
126-
}
127-
sql = sql + flatten(colNames, ", ") + ") VALUES ("
131+
sql = sql + flatten(colNames, ", ") + ") VALUES ("
128132

129-
var fieldNames []string
130-
for _, f := range st.Fields {
131-
if f.Column.IsPrimaryKey && st.Table.AutoGenPk {
132-
continue
133-
} else {
134-
fieldNames = append(fieldNames, f.Name)
133+
var fieldNames []string
134+
for _, f := range st.Fields {
135+
if f.Column.IsPrimaryKey && st.Table.AutoGenPk {
136+
continue
137+
} else {
138+
fieldNames = append(fieldNames, f.Name)
139+
}
135140
}
141+
sql = sql + placeholders(fieldNames) + ")"
136142
}
137-
sql = sql + placeholders(fieldNames) + ")"
138143

139144
if st.Table.AutoGenPk {
140145
sql = sql + " RETURNING "

0 commit comments

Comments
 (0)