mysql
Правильно ли я понимаю, что `created_on` datetime NOT NULL в создании таблицы mysql воспринимает чисто как рекомендацию, но вставлять null в такие поля разрешает?
Или это у меня просто руби и прочая кложурь падают от значения "00-00-0000 00:00:00" которое он туда по умолчанию впихивает при инсерте?
Или это у меня просто руби и прочая кложурь падают от значения "00-00-0000 00:00:00" которое он туда по умолчанию впихивает при инсерте?
no subject
Null и ноль часов ноль минут в день начала нашей эры это две большие разницы :)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
(no subject)
no subject
(no subject)
no subject
(no subject)
(no subject)
no subject
no subject
no subject
null
. По-моему, MySQL, несмотря на толпы тараканов в разных местах, ведет себя при записи datetime достаточно объяснимо (см. в особенности первую вставку):$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 46673
Server version: 5.5.31-0+wheezy1 (Debian)
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use test;
Database changed
mysql> create table metaclass (test_datetime datetime not null);
Query OK, 0 rows affected (0.34 sec)
mysql> insert into metaclass values (null);
ERROR 1048 (23000): Column 'test_datetime' cannot be null
mysql> insert into metaclass values ('');
Query OK, 1 row affected, 1 warning (0.09 sec)
mysql> insert into metaclass values (0);
Query OK, 1 row affected (0.05 sec)
mysql> select * from metaclass;
+---------------------+
| test_datetime |
+---------------------+
| 0000-00-00 00:00:00 |
| 0000-00-00 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)
no subject
Если в проперти объекта (типа дата) не указано значение, то в БД (MS SQL Server, Oracle, Postgres) запишется 0001.01.01 00:00:00 (yyyy.mm.dd hh:mm:ss)