Я по-прежнему новичок в использовании баз данных, но в настоящее время я использую базу данных mysql и пытаюсь сделать мой сценарий bash нерушимым, потому что он может использоваться в нескольких разных средах (dev, qa и т. Д.). Я знаю, что он будет работать правильно без этой одной строки.Создать таблицу, если не существует Hanging
CREATE TABLE IF NOT EXISTS backupfiles (fileName VARCHAR(20), archiveId VARCHAR(500), checkSum VARCHAR(100), glacierVault VARCHAR(100), timeStamp date);
Я также знаю, что если я ставлю эту точную строку в моей базе данных, когда эта таблица не существует, то он работает отлично, и если она существует уже это дает мне предупреждение, но не ломается.
+-------+------+------------------------------------+
| Level | Code | Message |
+-------+------+------------------------------------+
| Note | 1050 | Table 'backupfiles' already exists |
+-------+------+------------------------------------+
Когда я запускаю линию выше и нет таблицы с именем backupfiles это работает отлично, но когда он висит (когда я говорю, висит он сидит там и ничего не делает) 95% времени и 5% времени работает. Кто-нибудь сталкивался с такой проблемой? Я использую AWS RDS (Amazon Web Serices реляционных баз данных службы) и сервер MySQL является 5.5.27
Вот весь мой код, который я относится к базе данных MySQL
mysql -h portal-rds -u $user --password=$mysqlpw <<QUERY_INPUT
CREATE DATABASE IF NOT EXISTS $DATABASE;
use glacier;
CREATE TABLE IF NOT EXISTS backupfiles (fileName VARCHAR(20), archiveId VARCHAR(500), checkSum VARCHAR(100), glacierVault VARCHAR(100), timeStamp date);
INSERT INTO backupfiles VALUES ('$archive_file_name', '$archiveID', '$CURRENTVAULT', '$checkSum', CURDATE());
COMMIT;
QUERY_INPUT