我仍然是使用数据库的新手,但目前我正在使用 mysql 数据库并试图使我的 bash 脚本牢不可破,因为它可能用于几种不同的环境(dev、qa 等)。我知道它会在没有这一行的情况下正常运行。
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(亚马逊网络服务关系数据库服务),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