72 похожих чатов

Помогите понять, что происходит. СУБД MySql. Создал таблицу: create or replace table

read_write_info (
user_id int comment 'ID пользователя',
read_timestamp timestamp comment 'Дата чтения',
write_timestamp timestamp comment 'Дата изменения');

Далее заполнил ее:
insert into
read_write_info (user_id)
values
(1), (2), (3);

В итоге в колонке read_timestamp оказался timestamp исполнения 2-го скрипта, а в колонке write_timestamp — 0:00.
Почему такая разница?

13 ответов

10 просмотров

Видимо, в таблицэ записаны какие-то дефолты. Или триггеры.

Alexander-Morozov Автор вопроса

Так и базу и таблицу создал я и с нуля. Откуда там взяться этой асимметрии?

Alexander Morozov
Так и базу и таблицу создал я и с нуля. Откуда там...

Как бы если ты не заполняешь эти поля то там ничего не должно быть

а что такое второй скрипт? как именно себя должен вести timestamp без указания дефолтов? всё тут прочитали? https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html

Alexander-Morozov Автор вопроса
Ilya Anfimov
Кто ж тебя знает?

Поскольку никаких данных я туда не вношу, то ожидал увидеть там Null. Я бы не удивился увидеть там текущий таймштамп. И то, и другое вполне логично. Но я удивляюсь, что абсолютно одинаковые при создании и заполнении колонки оказались с разным содержанием.

Alexander Morozov
Поскольку никаких данных я туда не вношу, то ожида...

Так у тебя поля нотнул К тому же Time Stamp тип наверное имеет особую семантику и это поле автоматически меняется при любом изменении

Alexander Morozov
Поскольку никаких данных я туда не вношу, то ожида...

Это поле автоматически меняется при любом изменении записи

Alexander Morozov
Поскольку никаких данных я туда не вношу, то ожида...

Ещё Я помню что такое поле в одной таблице должно быть только одно, может быть у тебя именно с этим проблемы прочитай в документации про этот тип данных особый и уникальный

Alexander Morozov
Поскольку никаких данных я туда не вношу, то ожида...

Вообще такие типы данных предназначаются для контроля изменения записей другими пользователями при так называемом оптимистическом блокировании записей. И кстати оно никак не связано со временем по идее это совсем не то что тебе нужно тебе нужно дейтайм плюс либо триггера либо добавление этих полей в инферты и апдейты с указанием времени

Alexander-Morozov Автор вопроса
Roman Sergeev
а что такое второй скрипт? как именно себя должен ...

Прочитал, что первая timestamp колонка в таблице автоматически получает соответствующий атрибут! Теперь понятно.

Alexander-Morozov Автор вопроса
Ilya Zviagin
Вообще такие типы данных предназначаются для контр...

Так оно и нужно, только контроль будет на уровне самого приложения.

Ilya Zviagin
Вообще такие типы данных предназначаются для контр...

Explicit_defaults_for_timestamp=off только если. Но это наркоманство всё.

Похожие вопросы

Обсуждают сегодня

что насчет пагинга? на осдеве непонятно(
Vi Chapmann 🪙
26
if (user?.choseType === 'oneDay') { await ctx.reply( 'Добро пожаловать в команду «Магнита»! Правда, на один день ☺️ ', ); await ctx.s...
Kokni
1
если загрузчик efi? если сама PML4 PDPT PDT PT лежит в неудобном для меня месте?
Vi Chapmann 🪙
8
Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
А я же правильно понимаю, что инструкция AT в ld только сохраняет метаинформации о том, куда загрузить сегмент, которую далее из эльфика читает grub(ну если граб)? Но я тогда ...
Evg Resh
2
Господа, импользую кастомный загрузчик, ядро запускается сразу в длинном режиме, хочу узнать, сколько всего физической ОЗУ есть у машины. И, может, знаете какие-то подводные к...
Vi Chapmann 🪙
6
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
а причем тут линкер скрипты? UEFI где-то расположила PML4 и прочее, а мне надо переложить её в другое физическое место. как?
Vi Chapmann 🪙
6
неужели нету аппаратного метода узнать объём ОЗУ?
Vi Chapmann 🪙
6
Карта сайта