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
вот нашёл для проверки когда не налл, то он автоматом вставляет "дефолт", а для таймстемпа дефолт есть, вот поконкретнее:
"For date and time types other than TIMESTAMP, the default is the appropriate “zero” value for the type. This is also true for TIMESTAMP if the explicit_defaults_for_timestamp system variable is enabled "
no subject
Не говоря уже о том, что даты 00-00-0000 не бывает.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
Хотя не исключаю, что это субьективное впечатление из-за моей чистой любви к ораклу.
no subject
no subject
java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 6 to TIMESTAMP.
at com.mysql.jdbc.SQLError.createSQLException (SQLError.java:1055)
Ожидаемо, т.к. нулевых дней в месяце не бывает :)
а руби загружает это значение как nil и при попытке его показать на странице валится :)
no subject
no subject
no subject
no subject
Да, я в курсе про boolean в паскале.
no subject
no subject
Но оно же пытается ее создать :)
no subject
хотя чего гадать на пальцах, можно инвестигейтить
no subject
что у них могут быть кривые руки, охотно верю
но вот как раз драйвер https://dev.mysql.com/downloads/connector/j/ гпл-ный, можете собственноручно фиксать баги
no subject
no subject
Внешний мир может поставлять до хрена всякого мусора; надо не рыдать над несовершенством внешнего мира, а определять машину (т.е. алгебру) соответствующим образом.
no subject
Ну, ладно, для меня это система внешняя, я на границе от нее костыль поставлю, но все равно печально :)
no subject
no subject
no subject
no subject
no subject
no subject
no subject
God save the Queen!
В то время она еще правила.
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)