Skip to content

Commit

Permalink
fix #176: too many keys specified
Browse files Browse the repository at this point in the history
  • Loading branch information
zhenghaoz committed Jun 25, 2021
1 parent a97e00b commit 2d5206d
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion storage/data/sql.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,12 @@ func (d *SQLDatabase) Init() error {
return err
}
// create index
if _, err := d.db.Exec("ALTER TABLE feedback ADD INDEX (user_id)"); err != nil {
if exist, err := d.checkIfIndexExists("feedback", "user_id"); err != nil {
return err
} else if !exist {
if _, err = d.db.Exec("CREATE INDEX user_id ON feedback(user_id)"); err != nil {
return err
}
}
// change settings
_, err := d.db.Exec("SET SESSION sql_mode=\"" +
Expand All @@ -81,6 +85,14 @@ func (d *SQLDatabase) Init() error {
return err
}

func (d *SQLDatabase) checkIfIndexExists(table, index string) (bool, error) {
r, err := d.db.Query("SHOW INDEX IN "+table+" WHERE Key_name = ?", index)
if err != nil {
return false, err
}
return r.Next(), nil
}

// Close MySQL connection.
func (d *SQLDatabase) Close() error {
return d.db.Close()
Expand Down

0 comments on commit 2d5206d

Please sign in to comment.