[英]Insert Data to multiple MySQL database tables from .csv file
我有一個包含表格的數據庫:人員,玩家,教練和團隊。 所有表都有一個自動增量id字段作為主鍵。 人有id,firstname,lastname。 玩家和教練都有id字段,以及person_id和team_id作為外鍵,將它們綁定到其他表中的team.id或person.id字段。
現在為了完全填充這些表,我有幾個csv文件,其中包含每個團隊中玩家的名字列表。 我可以編寫一個bash或python腳本來獲取這些數據,不僅可以輸入人員表中的名稱,還可以將適當的人員和團隊ID值放入播放器表中嗎?
如果問題不明確,請問我,我會盡我所能澄清。 謝謝。
mysql> describe person;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| firstname | varchar(30) | NO | | NULL | |
| lastname | varchar(30) | NO | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
mysql> describe player;
+-----------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| person_id | int(11) | NO | MUL | NULL | |
| team_id | int(11) | NO | MUL | NULL | |
+-----------+---------+------+-----+---------+----------------+
mysql> describe team;
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| teamname | varchar(25) | NO | | NULL | |
| location | varchar(40) | NO | | NULL | |
| city | varchar(25) | NO | | NULL | |
| state | varchar(2) | NO | | NULL | |
| venue | varchar(35) | NO | | NULL | |
| league_id | int(11) | NO | MUL | NULL | |
+-----------+-------------+------+-----+---------+----------------+
以下是csv文件內容的示例:(AL-Central-Indians.csv)
Fausto,Carmona
Carlos,Carrasco
Kelvin,De La Cruz
Chad,Durbin
使用ORM可能對您的目的而言過於苛刻,但如果您需要對數據進行實際操作,它會讓您的生活變得輕松。 它需要你安裝一些軟件,但如果你願意學習一些新的東西,你可能會獲得很多東西。 幸運的是,開始使用它並不是很難,例如,使用Django:
./manage.py inspectdb
應該為你創建模型。 使用./manage.py inspectdb > myapp/models.py
進行保存。 export DJANGO_SETTINGS_MODULE=settings
以允許您從命令行腳本使用django 現在,您可以以這種方式創建import_players.py
腳本:
from myapp.models import Player, Person, Coach, Team
for my_file in my_files: # TODO: Iterate through your files
team = Team.objects.create(name=my_team_name) # creates a db record for a team
for line in lines_in_my_file: # TODO: Iterate through lines in your file
player = Player.objects.create(name=my_player_name, team=team) creates a db record for a player
了解如何使用模型: https : //docs.djangoproject.com/en/dev/topics/db/models/
您可以使用mysql命令直接執行此操作,如下所示:
load data local infile 'AL-Central-Indians.csv' into table player
fields terminated by ','
enclosed by '"'
lines terminated by '\n'
(person_id, team_id)
我從這里得到了。 雖然該頁面還涉及首先將Excel導出為CSV。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.