Using only MySQL, I’m seeing if it’s possible run an insert statement ONLY if the table is new. I successfully created a user variable to see if the table exists. The problem is that you can’t use ‘WHERE’ along with an insert statement. Any ideas on how to get this working?
// See if the 'country' table exists -- saving the result to a variable SELECT @table_exists := COUNT(*) FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'country'; // Create the table if it doesn't exist CREATE TABLE IF NOT EXISTS country ( id INT unsigned auto_increment primary key, name VARCHAR(64) ); // Insert data into the table if @table_exists > 0 INSERT INTO country (name) VALUES ('Afghanistan'),('Aland Islands') WHERE 0 < @table_exists;
1 Answer