Нужна помощь в устранении моей ошибки в файле sql 1064

#sql

Вопрос:

Я использую файл sql, который выглядит следующим образом

 ALTER TABLE `users` 
    ADD COLUMN `crypto` VARCHAR(255) NULL '{"bitcoin": 0, "ethereum": 0, "bitcoin-cash": 0, "bitcoin-sv": 0, "litecoin": 0, "binance-coin": 0, "monero": 0, "dash": 0, "zcash": 0, "maker": 0}';
 

и я получаю эту ошибку

/* SQL-fel (1064): У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MariaDB, на правильный синтаксис для использования рядом с «{«биткоин»: 0, «эфириум»: 0, «биткоин-наличные»: 0, «биткоин-sv»: 0, «лайткоин»…’ в строке 1 *

я не знаю, в чем может быть проблема

Комментарии:

1. Почему вы храните данные в виде большого двоичного объекта JSON, а не в виде столбцов? И какие именно СУБД вы используете?

2. Если '{"bitcoin": 0, "ethere часть предназначена для значения по умолчанию для столбца, то вам следует использовать DEFAULT спецификатор-и столбец, вероятно, должен быть NVARCHAR(1000) NOT NULL или около того.

Ответ №1:

Как кто-то уже сказал, если вы хотите добавить столбец со значением по умолчанию, правильный синтаксис таков:

 ALTER TABLE `users` 
ADD COLUMN `crypto` VARCHAR(255) NULL default 
'{"bitcoin": 0, "ethereum": 0, "bitcoin-cash": 0, "bitcoin-sv": 0, "litecoin": 0, 
"binance-coin": 0, "monero": 0, "dash": 0, "zcash": 0, "maker": 0}';
 

Это работает, даже если вы не задали тип как NVARCHAR(1000) .

Комментарии:

1. Если вы можете проголосовать или принять ответ, это полезно для других, которые сталкиваются с той же проблемой. Спасибо!