Boa tarde!
Estou montando um projeto em python com flask e banco de dados mysql conectado com sqlalchemy. Nesse projeto tenho uma das tabelas 'relacao_musculo' com o seguinte create:
TABLES['RelacaoMusculo'] = ('''
CREATE TABLE `relacao_musculo` (
`ID` int NOT NULL AUTO_INCREMENT,
`REF_1` int NOT NULL,
`REF_2` int DEFAULT NULL,
`REF_3` int DEFAULT NULL,
PRIMARY KEY (`ID`),
KEY `REF_1` (`REF_1`),
KEY `REF_2` (`REF_2`),
KEY `REF_3` (`REF_3`),
CONSTRAINT `relacao_musculo_ibfk_1` FOREIGN KEY (`REF_1`) REFERENCES `musculo` (`ID`),
CONSTRAINT `relacao_musculo_ibfk_2` FOREIGN KEY (`REF_2`) REFERENCES `musculo` (`ID`),
CONSTRAINT `relacao_musculo_ibfk_3` FOREIGN KEY (`REF_3`) REFERENCES `musculo` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;''')
com a função cursor.executemany(operation, seq_params) estou tentando inserir na tabela alguns itens, conforme a sentença a seguir:
rel_musculos_sql = 'INSERT INTO relacao_musculo (REF_1) VALUES (%s)'
rel_musculos = [
('1'),
('2'),
('3'),
('4'),
('5'),
('6'),
('7'),
('8'),
('9'),
('10')
]
cursor.executemany(rel_musculos_sql, rel_musculos)
porém ao rodar o código ele não adiciona os itens e me devolve a seguinte resposta:
Traceback (most recent call last):
File "C:\Users\Douglas\PycharmProjects\pythonProject\easyfit\venv\lib\site-packages\mysql\connector\cursor_cext.py", line 313, in _batch_insert
prepared = self._cnx.prepare_for_mysql(params)
File "C:\Users\Douglas\PycharmProjects\pythonProject\easyfit\venv\lib\site-packages\mysql\connector\connection_cext.py", line 686, in prepare_for_mysql
raise errors.ProgrammingError(
mysql.connector.errors.ProgrammingError: Could not process parameters: str(1), it must be of type list, tuple or dict
não consegui entender pq ele processa o parâmetro como str(1) sendo que é uma lista de tuplas e só dentro da tupla contém o str para leitura do mysql, lembrando que apenas 2 campos da tabela são obrigatórios, o id pk autoincrement (não necessário especificar no insert) e a REF_1 especificada nas tuplas da lista de parâmetros.
Se alguém puder me ajudar eu agradeço!!