我希望能够创建数据库和架构,并使用 docker-compose 文件将数据插入 MySQL。
该数据库是著名的sakila数据库。
我创建了一个 git 存储库来执行上述操作,并且 git 存储库是 this
当我运行下面的命令时
sudo docker-compose up --build --remove-orphans
我需要等待一段时间才能在 phpmyadmin 上显示数据,但我发现大多数数据库表都是空的。
所以我尝试将 MAX_EXECUTION_TIME=0 添加到 phpmyadmin 服务,希望它能够运行直到所有插入语句完成运行。
phpmyadmin:
image: phpmyadmin
restart: always
depends_on:
- mysql
ports:
- 8081:80
environment:
- MAX_EXECUTION_TIME=0
- PMA_HOST=mysql
- PMA_ARBITRARY=1
但是我的努力并不走运,有些表还没有数据。
我需要有关如何使插入数据即时且完整地工作的帮助。
我意识到插入数据涉及数十万条插入语句需要时间才能完成;换句话说,速度取决于要插入的记录数。
另一方面,外键约束冲突会导致插入数据脚本突然退出,从而导致某些表没有数据,但当命令 'SET FOREIGN_KEY_CHECKS=0;' 时添加到插入数据脚本中
USE sakila;
SET FOREIGN_KEY_CHECKS=0;
Insert into film
(`film_id`,`title`,`description`,`release_year`,`language_id`,`original_language_id`,`rental_duration`,`rental_rate`,`length`,`replacement_cost`,`rating`,`special_features`,`last_update`)
Values
('258','DRUMS DYNAMITE','A Epic Display of a Crocodile And a Crocodile who must Confront a Dog in An Abandoned Amusement Park','2006','1',NULL,'6','0.99','96','11.99','PG','Trailers','2006-02-15 05:03:42.000')
;
一切顺利。