#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. Если вы можете проголосовать или принять ответ, это полезно для других, которые сталкиваются с той же проблемой. Спасибо!