使用Python将虚拟数据填充到MySQL表中
我正在摆弄Sakila DB,我使用与使用Python将虚拟数据填充到MySQL表中,python,mysql,Python,Mysql,我正在摆弄Sakila DB,我使用与actor表相同的模式创建了一个director表 对于那些不熟悉的人,actor表有4列: 演员身份证 名字 姓 最后更新 我创建的director表的结构类似 现在还有一个film\u actor表,我认为它用作连接表,因为它有复合主键,用于将actor表链接到film表 现在我想创建一个director\u film表。。。你猜对了!与相关导演建立与电影的联系 问题是Sakila有1000部电影。我希望每个导演(我创建了15个)都链接到每部电影 有
actor
表相同的模式创建了一个director
表
对于那些不熟悉的人,actor
表有4列:
- 演员身份证
- 名字
- 姓
- 最后更新
director
表的结构类似
现在还有一个film\u actor
表,我认为它用作连接表,因为它有复合主键,用于将actor
表链接到film
表
现在我想创建一个director\u film
表。。。你猜对了!与相关导演建立与电影的联系
问题是Sakila有1000部电影。我希望每个导演(我创建了15个)都链接到每部电影
有没有一种方法可以使用Python将导演随机分配给电影?这是在本地主机上,我目前使用默认的3306端口,使用root作为用户
导演
和电影
的主键从1开始自动递增 如果假设每部电影只有一名导演,则最好在电影
表中添加一个字段导演
然后,您可以运行以下SQL查询,为每部影片设置一个随机导演(从1到15的整数):
UPDATE film SET director = FLOOR( 1 + RAND( ) *15 )
编辑:
将film\u actor
的内容复制到director\u film
:
INSERT INTO director_film (SELECT * FROM film_actor )
然后生成一个随机控制器:
UPDATE director_film SET director = FLOOR( 1 + RAND( ) *15 )
为什么不做一个循环,生成两个随机数——第一个<1000,第二个<15——然后分配它呢?你应该更具体地说明你想要什么:与数据库交互的代码?SQL语句?列出1000名董事的代码?以上的一些组合?很抱歉不清楚。是的,与数据库交互的代码。我已经安装了MySQL for Python模块。如果有一种方法可以通过SQL和跳过Python来实现这一点,我也同意。谢谢你的评论。不幸的是,并不是每部电影都是一对一的关系。例如,我的
director
表中有两个Wachowski兄弟,他们共同导演了矩阵系列。