Установить столбец по умолчанию не удалось в mysql

Вот моя таблица DDL:

-- auto-generated definition
create table treehole
(
    id          bigint auto_increment
        primary key,
    content     text                                not null,
    author_id   bigint                              not null,
    create_time timestamp default CURRENT_TIMESTAMP not null,
    modify_time timestamp                           not null,
    oo_num      int       default 0                 not null,
    xx_num      int       default 0                 not null
);

create index Treehole_author_id_index
    on treehole (author_id);

create index Treehole_create_time_index
    on treehole (create_time desc);

create index Treehole_oo_num_index
    on treehole (oo_num desc);

И я хочу установить значение по умолчанию дляmodify_time как current_timestamp:

alter table `treehole`
    alter column `modify_time`
        set default current_timestamp;

А бывает:

[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'current_timestamp' at line 3

Моя версия MySQL 8.0.422.

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
2
0
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш синтаксис отключен, используйте:

ALTER TABLE treehole
MODIFY COLUMN modify_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;

Суть в том, что вам нужно MODIFY COLUMN, а не ALTER COLUMN, а также вам нужно в основном переформулировать определение всего столбца, а не просто переформулировать значение по умолчанию.

Упс.. Это работает, но мой SQL создается автоматически с помощью datagrip 😂

Paul Zhang 25.12.2020 14:30

Другие вопросы по теме