【问题标题】:Using Python to fill dummy data into MySQL table使用 Python 将虚拟数据填充到 MySQL 表中
【发布时间】:2015-05-16 18:46:24
【问题描述】:

我在搞乱 Sakila 数据库,并使用与 actor 表相同的架构创建了一个 director 表。

对于不熟悉的人,actor 表有 4 列:

  • actors_id
  • 名字
  • 姓氏
  • last_update

我创建的director 表结构类似。

现在还有一个film_actor 表,我认为它用作连接表,因为它具有用于将actor 表链接到film 表的复合主键。

现在我想创建一个director_film 表......你猜对了!与相关导演建立与电影的联系。

问题是 Sakila 有 1000 部电影。我希望每个导演(我创建了 15 个)都链接到每部电影。

有没有办法使用 Python 为电影随机分配导演?这是在本地主机上,我目前在默认的 3306 端口上,使用 root 作为用户。

directorfilm 的主键从 1 开始自动递增。

【问题讨论】:

  • 你为什么不做一个循环生成 2 个随机数 - 第一个
  • 您应该更具体地说明您想要什么:与数据库交互的代码? SQL 语句?列出 1000 个董事职位的代码?以上的某种组合?
  • 抱歉不清楚。是的,与数据库交互的代码。我目前安装了 MySQL for Python 模块。如果有办法只使用 SQL 并完全跳过 Python,我也可以。

标签: python mysql


【解决方案1】:

如果您假设每部电影只有一位导演,则最好将字段 director 添加到您的 film 表中。

然后您可以运行以下 SQL 查询来为每部电影设置一个随机导演(从 1 到 15 的整数):

UPDATE film SET director = FLOOR( 1 + RAND( ) *15 ) 

编辑:

film_actor的内容复制到director_film

INSERT INTO director_film (SELECT * FROM film_actor ) 

然后生成随机导演:

UPDATE director_film SET director = FLOOR( 1 + RAND( ) *15 ) 

【讨论】:

  • 感谢您的评论。不幸的是,每部电影不会是一对一的关系。例如,我的director 表中有两个沃卓斯基兄弟,他们共同执导了《黑客帝国》系列。
猜你喜欢
  • 2011-06-13
  • 2014-09-23
  • 2019-05-04
  • 2011-02-23
  • 2023-01-15
  • 1970-01-01
  • 2012-01-12
  • 2017-10-08
  • 1970-01-01
相关资源
最近更新 更多