Bonjour à tous,
Je suis sous linux (mais pas root), en mysql 5.0.45, je suis seule à utiliser la base, et j'ai juste fait 2 tables;
j'ai besoin qu'elles soient en innodb car table_2 a pour clé etrangère la clé primaire de Table_1.
mais j'avais un probleme de innodb_lock_wait_timeout.
Alors la premiere je l'ai faite en myisam, je l'ai remplie, je n'ai plus besoin d'y toucher et je l'ai passer en Innodb.
Puis j'ai fait la seconde mais là ce sera un script qui la remplira ...
Malheureusement le probleme que j'ai contourné pour la premiere table se repose pour la seconde!
Le script peut faire les select, mais pas les INSERT INTO table_2 VALUES (..) à cause de je ne sais quels verrous et de cette variable "innodb_lock_wait_timeout" ...
la cle etrangere je l'ai defini comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part CONSTRAINT fk_id_table_1 FOREIGN KEY (id_table_1) REFERENCES table_1(id_table_1) ENGINE=INNODB
Est-ce que quelqu'un pourrait m'aider pour ce probleme d'insertion s'il vous plait...
Dans tout ce que j'ai pu lire sur le net, Je ne comprends rien à la façon de faire accepter les selects ... comments deverouiller les veroux qui me servent à rien?
En fait pour la table_2 j'ai fait :
et pour la table_1 j'ai fait :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 CREATE TABLE table_2 ( id_table_2 INT NOT NULL AUTO_INCREMENT, nom VARCHAR(50) NOT NULL, ..., id_table_1 CHAR(10) NOT NULL, CONSTRAINT pk_id_table_2 PRIMARY KEY (id_table_2), INDEX index_id_table_1 (id_table_1), CONSTRAINT fk_id_table_1 FOREIGN KEY (id_table_1) REFERENCES table_1(id_table_1) ) DEFAULT CHARSET=UTF8 ENGINE=INNODB COMMENT='blabla';
puis après remplissage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 CREATE TABLE table_1 ( id_table_1 CHAR(10) NOT NULL, ref_1 TINYINT(1) DEFAULT 0 NOT NULL, ... ref10 TINYINT(1) DEFAULT 0 NOT NULL, PRIMARY KEY (id_table_1) ) DEFAULT CHARSET = UTF8 COMMENT = 'blabla';
mon script est en python :
Code : Sélectionner tout - Visualiser dans une fenêtre à part alter table table_1 ENGINE = INNODB;
Merci d'avance si vous pouvez m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #!/usr/bin/python # -*- coding:Utf-8 -*- import MySQLdb conx = MySQLdb.connect(db="madb", user="moua") cursr = conx.cursor() req = "NULL, \'blabla\', \'blabla.txt\', 10, 1, 3, 4, 5,0,\'1000000000\');" # insert into table_2 values(NULL, 'blabla', 'blabla.txt', 10, 1, 3, 4, 5,0,'1000000000'); requete_insert_table_2 = "insert into table_2 values (" + req + ");" cursr.execute(requete_insert_table_2) cursr.fetchall() print "fini"
Partager