Ну, причины, по которым это происходит, - это то, что строка создания не попадает в цикл for. Поскольку Europe
является последним элементом в таблице, он является единственным, который выполняется.
Вы хотите переместить выполнение в пределах цикла, вдоль линий:
mydb = MySQLdb.connect(host="127.0.0.1",user="root",passwd="12345678*",db="TESTDB1")
cursor = mydb.cursor()
with open('data.txt', 'r') as z:
for line in z:
m = {}
(m['0'], m['1'], m['2'], m['3']) = line.split(";")
Table = m['0']
sql = "CREATE TABLE IF NOT EXISTS " +Table+ " (name char(40), lastname char(40), age int (3), code int (10))"
cursor.execute(sql)
mydb.close()
т.е. сначала создать базу данных, а затем цикл по вставке каждому из таблиц, которые вы желаете, а затем закройте его.
Другим способом было бы просто вставить нижнюю половину кода.
ОК, где запрос, который вставляет данные в таблицу? – Sergius
Вам следует дважды проверить отступы. –