source: spip-zone/_plugins_/sqlip_export/trunk/sqlite-mysql.html @ 68014

Last change on this file since 68014 was 68014, checked in by suske@…, 8 years ago

mort à latin1, vive utf8

File size: 2.3 KB
RevLine 
[65396]1[(#AUTORISER{webmestre}|sinon_interdire_acces)]#CACHE{0} #HTTP_HEADER{Content-Type:text/plain; charset=#CHARSET} #HTTP_HEADER{Content-Disposition: attachment; filename="mysql-dump.sql"}
2[(#REM) lister les tables et description sqlite]
3[(#REM) array type=>table name=>nom table tbl_name=>nom_table rootpage=>2  sql=>CREATE TABLE name (...,PRIMARY KEY(key))]
4<BOUCLE_tables(DATA){source sql,SELECT * FROM sqlite_master WHERE type='table'}>
5#SET{table,#VALEUR{name}} #SET{cle_primaire,#VALEUR{sql}|cle_prim} #SET{req_table,PRAGMA table_info ( #VALEUR{name} )}
6[(#REM) les enonces de base: supprimer et creer ]
7DROP TABLE IF EXISTS `#VALEUR{name}`;CREATE TABLE `#VALEUR{name}` (
8[(#REM) liste des champs - RECUPERER AUTO INCREMENT !!! - on stocke aussi pour les insert] #SET{champs,#ARRAY}
9<B_table_desc><BOUCLE_table_desc(DATA){source sql,#GET{req_table}}{", "}>
10`#VALEUR{name}` [ (#VALEUR{type}|=={"TIMESTAMP"}|?{"timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP",#VALEUR{type}|strtolower}) ] [ (#VALEUR{notnull}|=={1}|?{"NOT NULL",""}) ] [ default (#VALEUR{dflt_value}|=={"''"}|?{"",#VALEUR{dflt_value}})]
11[(#REM) et on stocke la liste des champs pour plus tard] #SET{champs,#GET{champs}|push{#VALEUR{name}}}
12</BOUCLE_table_desc>
13[(#REM) ensuite la clé primaire ][,(#GET{cle_primaire})]
14[(#REM) on cherche la liste des autres clés]#SET{req_keys,PRAGMA index_list( #GET{table} )}
15<B_keys_liste>,
16<BOUCLE_keys_liste(DATA){source sql,#GET{req_keys}}{","}>[(#REM) le nom de table est répété dans les clés, on va l'enlever ]#SET{key,#VALEUR{name}|keyname{#GET{table}}}
17[KEY  `(#GET{key})` ]
18[(#REM) les valeurs des autres clés ]#SET{req_cle,PRAGMA index_info( #VALEUR{name})}
19<B_keys> ( <BOUCLE_keys(DATA){source sql,#GET{req_cle}}{", "}>`#VALEUR{name}`</BOUCLE_keys> )</B_keys>
[68014]20</BOUCLE_keys_liste>) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
[65396]21[(#REM) insérons-maintenant les valeurs]#SET{req_donnees,SELECT * FROM  #GET{table}}
22<B_lignes>INSERT INTO `#GET{table}` (<BOUCLE_champs(DATA){source tableau,#GET{champs}}{", "}>`#VALEUR`</BOUCLE_champs>) VALUES <BOUCLE_lignes(DATA){source sql,#GET{req_donnees}}{", "}><B_donnees>(<BOUCLE_donnees(DATA){source table,#VALEUR}{", "}>[(#VALEUR|?{['(#VALEUR|mysql_prep)'],"''"})]</BOUCLE_donnees>)</B_donnees></BOUCLE_lignes>;</B_lignes></BOUCLE_tables>
Note: See TracBrowser for help on using the repository browser.