import MySQLdb print('Conectando...') conn = MySQLdb.connect(user='root', passwd='admin', host='localhost', port=3306)
Descomente se quiser desfazer o banco...
#conn.cursor().execute("DROP DATABASE jogoteca
;")
#conn.commit()
criar_tabelas = '''SET NAMES utf8;
CREATE DATABASE jogoteca
/*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
USE jogoteca
;
CREATE TABLE jogo
(
id
int(11) NOT NULL AUTO_INCREMENT,
nome
varchar(50) COLLATE utf8_bin NOT NULL,
categoria
varchar(40) COLLATE utf8_bin NOT NULL,
console
varchar(20) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
CREATE TABLE usuario
(
id
varchar(8) COLLATE utf8_bin NOT NULL,
nome
varchar(20) COLLATE utf8_bin NOT NULL,
senha
varchar(8) COLLATE utf8_bin NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;'''
conn.cursor().execute(criar_tabelas)
inserindo usuarios
cursor = conn.cursor() cursor.executemany( 'INSERT INTO jogoteca.usuario (id, nome, senha) VALUES (%s, %s, %s)', [ ('luan', 'Luan Marques', 'flask'), ('nico', 'Nico', '7a1'), ('danilo', 'Danilo', 'vegas') ])
cursor.execute('select * from jogoteca.usuario') print(' ------------- Usuários: -------------') for user in cursor.fetchall(): print(user[1])
inserindo jogos
cursor.executemany( 'INSERT INTO jogoteca.jogo (nome, categoria, console) VALUES (%s, %s, %s)', [ ('God of War 4', 'Ação', 'PS4'), ('NBA 2k18', 'Esporte', 'Xbox One'), ('Rayman Legends', 'Indie', 'PS4'), ('Super Mario RPG', 'RPG', 'SNES'), ('Super Mario Kart', 'Corrida', 'SNES'), ('Fire Emblem Echoes', 'Estratégia', '3DS'), ])
cursor.execute('select * from jogoteca.jogo') print(' ------------- Jogos: -------------') for jogo in cursor.fetchall(): print(jogo[1])
commitando senão nada tem efeito
conn.commit() cursor.close()
ERRO
Traceback (most recent call last): File "C:/Users/bruno/PycharmProjects/JogoTeca/Prepara_banco.py", line 35, in ('danilo', 'Danilo', 'vegas') File "C:\Users\bruno\PycharmProjects\teste\venv\lib\site-packages\MySQLdb\cursors.py", line 237, in executemany self.getdb().encoding) File "C:\Users\bruno\PycharmProjects\teste\venv\lib\site-packages\MySQLdb\cursors.py", line 264, in doexecute_many rows += self.execute(sql + postfix) File "C:\Users\bruno\PycharmProjects\teste\venv\lib\site-packages\MySQLdb\cursors.py", line 186, in execute while self.nextset(): File "C:\Users\bruno\PycharmProjects\teste\venv\lib\site-packages\MySQLdb\cursors.py", line 139, in nextset nr = db.next_result() MySQLdb._exceptions.ProgrammingError: (1007, "Can't create database 'jogoteca'; database exists")
Process finished with exit code 1
Parece que não esta criando o banco de dados, e na hora da inserção das tabelas ele não encontra o BD