views:

296

answers:

2

I have a MySQL table that will only have one row. What should my statement be for the first time I insert to this row, and for subsequent updates? I tried an insert where the primary key equals 1, but this doesn't account for the first time around when no row exists yet. Thanks!

+5  A: 
INSERT INTO table(col1,col2,col3) VALUES(val1,val2,val3) ON DUPLICATE KEY UPDATE col1 = val1, col2 = val2, col3 = val3;
SoapBox
+7  A: 

If your table will only ever have one row, you might consider preloading initial data into the row in your database creation script. Then your code will only ever need to issue an UPDATE statement. Also, you will not need a primary key column because there is only ever one row. You can then issue UPDATE statements without needing a WHERE clause, too.

Greg Hewgill
Thanks for the good tip. Unfortunately, this is a Wordpress plugin, and the db session is already open and initialized.
hal10001