проблема с цитированием в mysql

Как следует из предупреждения, похоже, что apk ожидает, что тег репозитория @edgeприсутствует, но на самом деле он отсутствует в вашем файле /etc/apk/repositories.

Чтобы добавить тег edgeи репозиторий, добавьте следующую строку в файл репозиториев:

@edge http://dl-cdn.alpinelinux.org/alpine/edge/main

Это включает пограничный репозиторий и помечает его тегом @edge.
После этого запустите apk updateи попробуйте повторить установку MariaDB.

Дополнительные сведения о тегировании и закреплении репозитория Alpine см. в :
. Alpine Wiki -Пакеты и репозитории -Закрепление репозитория .

-3
28.10.2020, 09:34
3 ответа

Строка в кавычках стала здесь документом:

<<END
CREATE EVENT $name ON SCHEDULE
  AT Str_to_date('$date', '%Y-%m-%d %T.%f')
  ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM $test;
END

Я успешно выполнил следующее в базе данных MariaDB:

export DATE='2020-10-28 14:00:00.000000'
export NAME=eventje
export TEST=test

mysql --password='xYzAbC'  --database=ghp <<END
DROP EVENT $NAME;
CREATE EVENT $NAME ON SCHEDULE
  AT Str_to_date('$DATE', '%Y-%m-%d %T.%f')
  ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM $TEST;
END
1
18.03.2021, 22:54

Двойные -кавычки метки END, которая идентифицирует начало здесь -документа. Затем используйте правильный синтаксис MySQL внутри здесь -doc -не экранируйте кавычки, если только они не будут экранированы нормально для MySQL

mysql --user='halloween' --password='ghost_123' --database='ghost_database' <<"END"
CREATE EVENT myevent ON SCHEDULE AT "$date" ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM "$test";
END

Обратите внимание, что я не пытался исправить ваш синтаксис SQL. Что касается меня, я не совсем уверен, что двойные -кавычки правильны для имен таблиц (или даже для строк ).

Если бы у вас не было никаких переменных для интерполяции, было бы правильно заключить -в одинарные кавычки идентификатор документа здесь -. (Заключение такое же, как и для строки.)

1
18.03.2021, 22:54

Мне удалось найти решение с помощью следующего скрипта:

Переменная $date заключена только в двойные кавычки


date='2020-10-31 00:00:00.000000'

#CREATE EVENT myevent ON SCHEDULE AT "$date" ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM '$test';
mysql --user=halloween --password='ghost_123' --database='ghost_database' <<END
use ghost_database;
CREATE EVENT myevent ON SCHEDULE AT "$date" ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM ghost_database;
END

``````````````````


This script can be run separately if needed using an input argument:
In this example below the input argument is 'ghost'.  It could technically lookup whatever variables or be passed the date variable in epoch and simply convert it.

`````````````````
while getopts i: option

do
case "${option}"
in
i) ghost=${OPTARG};;
esac


0
18.03.2021, 22:54

Теги

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