7.94 SESAM
7 Index des fonctions
Manuel PHP
. Introduction . Configuration à l'exécution . Notes sur la configuration . Considérations à l'exécution . Types de curseurs . Portage . Sécurité ->Migration d'une autre base SQL . Notes sur l'utilisation de types SQL divers . Support des "champs multiples" de SESAM . Voir aussi . sesam_affected_rows . sesam_commit . sesam_connect . sesam_diagnostic . sesam_disconnect . sesam_errormsg . sesam_execimm . sesam_fetch_array . sesam_fetch_result . sesam_fetch_row . sesam_field_array . sesam_field_name . sesam_free_result . sesam_num_fields . sesam_query . sesam_rollback . sesam_seek_row . sesam_settransaction
|
7.94.8 Migration d'une autre base SQL
Deux langage SQL ne sont jamais 100% compatibles. Lorsque vous portez
une application SQL depuis une autre interface vers SESAM,
certaines adaptation doivent être faîtes. Les différences suivantes
sont les plus courantes :
-
Types de données spécifiques
Certains types de données spécifiques à une base doivent être
remplacés par les types de données standard SQL.
(i.e.,
TEXT
doit être remplacé par
VARCHAR(taille max)
).
-
Mots reservés comme identifiants SQL.
En SESAM (comme dans le standard SQL), les mots
reservés utilisés comme identifiants doivent être entourés
de guillemets doubles (ou renommés).
-
Taille d'affichage des données.
Les types de données SESAM ont une taille de stockage, mais
par de taille d'affichage. A la place de
int(4)
(c'est à dire : les entiers jusqu'à '9999'), SESAM requiert simplement
int
, pour une taille implicite de 31 bits. De même,
les seuls types de date disponible dans SESAM sont :
DATE
,
TIME(3)
et
TIMESTAMP(3)
.
-
Les types de données
unsigned
(non signé),
zerofill
(complété avec des zéros), ou
auto_increment
Unsigned
et
zerofill
ne sont pas
supportés.
Auto_increment
est automatique
(utilisez
"INSERT ... VALUES(*, ...)"
au lieu de
"... VALUES(0,...)"
pour profiter des auto-increment
implicites de SESAM.
-
int ... DEFAULT '0000'
Les variables numériques ne doivent pas être initialisées
avec des constantes de type chaîne de caractères. Utilisez
DEFAULT 0
à la place. Pour initialiser une
date, la chaîne doit être préfixée avec le type de date
adapté, tel que :
CREATE TABLE exmpl (xtime timestamp(3) DEFAULT TIMESTAMP '1970-01-01 00:00:00.000' NOT
NULL
);
-
$count = xxxx_num_rows();
Certaines bases de données essaient d'estimer le nombre
de lignes d'un résultat, même grossièrement approximativement.
SESAM ne connait pas le nombre de lignes avant de les
avoir lues lui-même. Si vous avez vraiment besoin de
les compter, utilisez la commande
SELECT COUNT(...) WHERE ...
, qui vous dira
combien de lignes sont disponibles. Une deuxième requête
devrait vous retourner tous ces résultats.
-
DROP TABLE lenom;
Avec SESAM, dans la commande
DROP TABLE
,
le nom de la table doit être suivi du mot clé
RESTRICT
ou
CASCADE
. Avec
RESTRICT
, une erreur est retounrée si il y a des
objets dépendant (par exemple, des vues), tandis qu'avec
CASCADE
, les objets dépendants seront
supprimés en même temps que la table.
|