CREATE TABLE IF NOT EXISTS 表名
语句中的 IF NOT EXISTS 是什么作用呢
语句中的 IF NOT EXISTS 是什么作用呢
2016-08-05
如果不加IF NOT EXISTS,那么如果要创建的表已经存在时,系统就会报错表示已经存在此表。
例如,已经存在emp表,执行:create table emp( id int(2)) ;
结果报错:ERROR 1050 (42S01): Table 'emp' already exists(意思是:emp表已经存在。)
而加了之后,即使表名已存在也不会报错,也会“执行”,但不会创建新的表。
例如,在第1点的基础上,执行:create table if not exists emp( id int(2)) ;
结果不会报错:Query OK, 0 rows affected, 1 warning (0.05 sec)
验证方法,可以通过desc emp;语句,看看在执行第1点和第2点之后,emp表的字段结构有没有发生改变。(前提:事先创建好emp表)
下图是在已经存在emp表的情况下,用带有IF NOT EXISTS的语句再次创建emp表,结果可以发现:没有报错,但也不会覆盖旧表。
举报