38

How can I insert NULL value into INT column with MySQL? Is it possible?

misho
  • 1,195
  • 6
  • 16
  • 29

6 Answers6

52

If the column has the NOT NULL constraint then it won't be possible; but otherwise this is fine:

INSERT INTO MyTable(MyIntColumn) VALUES(NULL);
sheikhjabootie
  • 7,308
  • 2
  • 35
  • 41
16

2 ways to do it

insert tbl (other, col1, intcol) values ('abc', 123, NULL)

or just omit it from the column list

insert tbl (other, col1) values ('abc', 123)

naXa stands with Ukraine
  • 35,493
  • 19
  • 190
  • 259
RichardTheKiwi
  • 105,798
  • 26
  • 196
  • 262
4

Does the column allow null?

Seems to work. Just tested with phpMyAdmin, the column is of type int that allows nulls:

INSERT INTO `database`.`table` (`column`) VALUES (NULL);
Billy
  • 41
  • 1
2

If column is not NOT NULL (nullable).

You just put NULL instead of value in INSERT statement.

Andrey
  • 59,039
  • 12
  • 119
  • 163
0

Just use the insert query and put the NULL keyword without quotes. That will work-

INSERT INTO `myDatabase`.`myTable` (`myColumn`) VALUES (NULL);
-3

The optimal solution for this is provide it as '0' and while using string use it as 'null' when using integer.

ex:

INSERT INTO table_name(column_name) VALUES(NULL);
A J
  • 3,970
  • 14
  • 38
  • 53
  • 1
    0 and null has very different meanings. Null could mean we do not have the data. 0 means we know it is zero. Or lets imagine a referecence to user_id. 0 will point to record with id 0 while null means there is no user. – borjab Feb 21 '14 at 09:27