Merci à @Kalvn pour le lien.
Très utile, je recopie le tableau ci-dessous :
Liquibase data type | SQL Server data type | Oracle data type | MySQL | PostgreSQL |
bigint | bigint | number(38,0) | bigint | bigint/bigserial |
blob | varbinary(max) | blob | blob | oid |
boolean | bit | number(1) | bit | bit |
char | char | char | char | character |
clob | nvarchar(max) | clob | longtext | text |
currency | money | number(15,2) | decimal | decimal |
datetime | datetime | timestamp | timestamp | timestamp |
date | date | date | date | date |
decimal | decimal | decimal | decimal | decimal |
double | float | float(24) | double | double precision |
float | float | float | float | float |
int | int | integer | int | integer/serial |
mediumint | int | mediumint | mediumint | mediumint |
nchar | nchar | nchar | nchar | nchar |
nvarchar | nvarchar | nvarchar2 | nvarchar | varchar |
number | numeric | number | numeric | numeric |
smallint | smallint | number(5) | smallint | smallint/smallserial |
time | time | date | time | time |
timestamp | datetime | timestamp | timestamp | timestamp |
tinyint | tinyint | number(3) | tinyint | smallint |
uuid | uniqueidentifier | raw(16) | char(36) | uuid |
varchar | varchar | varchar2 | varchar | varchar/character (varying) |
Des indexes sous PostgreSQL qui sont spécialisés dans la recherche textuelle.
Et aussi ce lien sur les indexes BRIN spécialisés dans les données immutables.
Et cet autre lien sur les indexes HASH.
J'avais justement besoin de l'info. Donc pour cloner un schéma contenu dans PostgreSQL il faut faire ceci :
-- Copier le schéma dans un autre schéma avec ses données :
select clone_schema('development', 'development_clone', true);
-- Copier le schéma dans un autre schéma mais sans ses données :
select clone_schema('development', 'development_clone', false)
Merci à Zertrin pour le lien.
Des tips & tricks que je retiens :
- Toujours mettre ses noms de tables et colonnes en minuscules (parce que Postgre convertie les majuscules en minuscule au run)
- Ne jamais utiliser
psql -W
oupsql --password
car Postgre vous demandera un mot de passe même s'il n'y en a pas. - L'héritage c'est mal en programmation, c'est mal dans une base de données (et pour les mêmes raisons).
- Toujours utiliser
timestamptz
à la place detimestamp
afin de gérer les time-zones en plus. - Utiliser VARCHAR tout court à la place de VARCHAR(N).
La base H2DB intègre un moteur NoSQL au format clef-valeur.
Elle gère les accès concurrents en lecture/écriture et les connexions effectuées en parallèle par de multiples utilisateurs.
La documentation de la base indique que le mode concurrent est toujours qualifié de beta, mais il existe depuis la 1.3.x en expérimentale, et en "to qualify" depuis la 1.4.x.
C'est le cas depuis 2010 donc... Je pense qu'en 8 années et 196 patch (de la 1.4.0 à 1.4.196) on devrait être bons là nan ?
Bref, si H2 intègre un mode "dump before update" ou que je parvienne à en faire un, je switch et j'abandonne PostgreSQl et MySQL à son profit.
Je parlais justement de PostgreSQL avec Doudou hier en lui affirmant que je considérais ce SGBD comment bien meilleur que MySQL. Cela confirme encore mon point de vue.
Edit : mais l'écosystème MySQL est mieux (faut pas pousser hein).
J'imagine que ce tuto fonctionne pour la 9.3 donc je le coudifie.