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

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

auto increments + metas chasret utf8 dans mysql / v. 0.1.0 première version utilisable (le spip MySQl s'affiche correctement et est éditable). LISEZ_MOI.txt

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