有时我需要插入到表中的一些空值,或更新它们设置为NULL值。
我这个不能做PostgreSQL文档在其他地方见过,但可以tricket使用默认值:
pg_query("INSERT INTO my_table (col_a, col_b) VALUES ('whatever', default)
PS:我知道,在这个例子中,我会得到相同的结果与
pg_query("INSERT INTO my_table (col_a) VALUES ('whatever')
但问题来witht预处理语句:
pg_prepare($pgconn, 'insert_null_val', "INSERT INTO my_table (col_a, col_b) VALUES ($1, default)");
pg_exec($pgconn, 'insert_null_val', array('whatever'));
//this works, but
pg_prepare($pgconn, 'insert_null_val', "INSERT INTO my_table (col_a, col_b) VALUES ($1, $2)");
pg_exec($pgconn, 'insert_null_val', array('whatever', 'NULL'));
//insert into the table the string 'NULL'.
//instead using array('whatever', '') it assume the col_b as empty value, not NULL.
同样的问题自带的更新查询。
我认为这是一个解决方案,becose pgmyadmin可以做到这一点(或看起来像它可以),并写入我PHP(我不认为它不反正用准备好的发言)
如果youre想知道为什么我需要在我的桌子空值发青,让我抛出一个例子(也许有一个更好的方式,则空值):假设我有用户表,电子邮件西:这个人可以是空的,但它是一个独特的指数。2空的电子邮件都是平等的 ,违反了唯一约束,而2个NULL值不相等,可以共存。