j'aimerai savoir s'il est possible d'obtenir un record initialisé avec les valeurs par défaut configurée dans la base de données.
Par exemple si j'ai un tabl définie comme telle:
CREATE TABLE "tbl" ( "idtbl" serial NOT NULL, "idowner" integer DEFAULT NULL, "private_data" boolean default false, "create_date" timestamp without time zone DEFAULT 'now', "update_date" timestamp without time zone DEFAULT 'now', "title" text, "online" boolean default true, "content" text, PRIMARY key (idbtl) );
j'aimerai pouvoir obtenir un enregistrement qui contiendrai null, null, false, now, now, null, true, null
est ce possible?
Non, il est indiqué not null dans la définition des 2 premiers attributs, on ne peut donc pas obtenir null
Hors mis ça, il est tout à fait possible d'inserer un tuple avec seulement des valeurs par défaut, oui,
-- Sébastien
WebShaker
Sebastien Lardiere a écrit :
Hors mis ça, il est tout à fait possible d'inserer un tuple avec seulement des valeurs par défaut, oui,
Nan. Hum si je crée un enregistrement, je vais utiliser un serial. pas glop. je vais plutot m'orienter vers la lecture du schema.
L'idée étant que développer une class (PHP) générique qui permette la création d'un enregistrement en initialisant les champs avec les valeurs par défaut de la base de donnée.
Merci quand meme... Je me dote bien que dans le lot de mes question tordues, tout n'est pas possible :)
Etienne
Sebastien Lardiere a écrit :
Hors mis ça, il est tout à fait possible d'inserer un tuple avec
seulement des valeurs par défaut, oui,
Nan. Hum si je crée un enregistrement, je vais utiliser un serial. pas
glop. je vais plutot m'orienter vers la lecture du schema.
L'idée étant que développer une class (PHP) générique qui permette la
création d'un enregistrement en initialisant les champs avec les valeurs
par défaut de la base de donnée.
Merci quand meme...
Je me dote bien que dans le lot de mes question tordues, tout n'est pas
possible :)
Hors mis ça, il est tout à fait possible d'inserer un tuple avec seulement des valeurs par défaut, oui,
Nan. Hum si je crée un enregistrement, je vais utiliser un serial. pas glop. je vais plutot m'orienter vers la lecture du schema.
L'idée étant que développer une class (PHP) générique qui permette la création d'un enregistrement en initialisant les champs avec les valeurs par défaut de la base de donnée.
Merci quand meme... Je me dote bien que dans le lot de mes question tordues, tout n'est pas possible :)
Etienne
Sebastien Lardiere
Le 01/02/2010 21:56, WebShaker a écrit :
Sebastien Lardiere a écrit :
Hors mis ça, il est tout à fait possible d'inserer un tuple avec seulement des valeurs par défaut, oui,
Nan. Hum si je crée un enregistrement, je vais utiliser un serial. pas glop. je vais plutot m'orienter vers la lecture du schema.
L'idée étant que développer une class (PHP) générique qui permette la création d'un enregistrement en initialisant les champs avec les valeurs par défaut de la base de donnée.
Ok, une sorte d'ORM, quoi. Voici un requête dans pg_catalog permettant cela :
select a.attname, d.adsrc from pg_class c join pg_namespace n on c.relnamespace=n.oid join pg_attribute a on a.attrelid=c.oid left join pg_attrdef d on d.adrelid=c.oid and d.adnum=a.attnum where c.relname='<nomtable>' and n.nspname='<nomschema>' and a.attnum > 0 and c.relkind='r' order by a.attnum ;
De quoi s'amuser un peu ...
-- Sébastien
Le 01/02/2010 21:56, WebShaker a écrit :
Sebastien Lardiere a écrit :
Hors mis ça, il est tout à fait possible d'inserer un tuple avec
seulement des valeurs par défaut, oui,
Nan. Hum si je crée un enregistrement, je vais utiliser un serial. pas
glop. je vais plutot m'orienter vers la lecture du schema.
L'idée étant que développer une class (PHP) générique qui permette la
création d'un enregistrement en initialisant les champs avec les valeurs
par défaut de la base de donnée.
Ok, une sorte d'ORM, quoi. Voici un requête dans pg_catalog permettant
cela :
select
a.attname,
d.adsrc
from pg_class c join pg_namespace n
on c.relnamespace=n.oid
join pg_attribute a
on a.attrelid=c.oid
left join pg_attrdef d
on d.adrelid=c.oid and d.adnum=a.attnum
where c.relname='<nomtable>'
and n.nspname='<nomschema>'
and a.attnum > 0
and c.relkind='r'
order by a.attnum ;
Hors mis ça, il est tout à fait possible d'inserer un tuple avec seulement des valeurs par défaut, oui,
Nan. Hum si je crée un enregistrement, je vais utiliser un serial. pas glop. je vais plutot m'orienter vers la lecture du schema.
L'idée étant que développer une class (PHP) générique qui permette la création d'un enregistrement en initialisant les champs avec les valeurs par défaut de la base de donnée.
Ok, une sorte d'ORM, quoi. Voici un requête dans pg_catalog permettant cela :
select a.attname, d.adsrc from pg_class c join pg_namespace n on c.relnamespace=n.oid join pg_attribute a on a.attrelid=c.oid left join pg_attrdef d on d.adrelid=c.oid and d.adnum=a.attnum where c.relname='<nomtable>' and n.nspname='<nomschema>' and a.attnum > 0 and c.relkind='r' order by a.attnum ;
De quoi s'amuser un peu ...
-- Sébastien
WebShaker
Sebastien Lardiere a écrit :
Ok, une sorte d'ORM, quoi. Voici un requête dans pg_catalog permettant cela :
select a.attname, d.adsrc from pg_class c join pg_namespace n on c.relnamespace=n.oid join pg_attribute a on a.attrelid=c.oid left join pg_attrdef d on d.adrelid=c.oid and d.adnum=a.attnum where c.relname='<nomtable>' and n.nspname='<nomschema>' and a.attnum > 0 and c.relkind='r' order by a.attnum ;
De quoi s'amuser un peu ...
Merci !!!
Sebastien Lardiere a écrit :
Ok, une sorte d'ORM, quoi. Voici un requête dans pg_catalog permettant
cela :
select
a.attname,
d.adsrc
from pg_class c join pg_namespace n
on c.relnamespace=n.oid
join pg_attribute a
on a.attrelid=c.oid
left join pg_attrdef d
on d.adrelid=c.oid and d.adnum=a.attnum
where c.relname='<nomtable>'
and n.nspname='<nomschema>'
and a.attnum > 0
and c.relkind='r'
order by a.attnum ;
Ok, une sorte d'ORM, quoi. Voici un requête dans pg_catalog permettant cela :
select a.attname, d.adsrc from pg_class c join pg_namespace n on c.relnamespace=n.oid join pg_attribute a on a.attrelid=c.oid left join pg_attrdef d on d.adrelid=c.oid and d.adnum=a.attnum where c.relname='<nomtable>' and n.nspname='<nomschema>' and a.attnum > 0 and c.relkind='r' order by a.attnum ;
De quoi s'amuser un peu ...
Merci !!!
SQLpro
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies *********************** http://www.sqlspot.com *************************
WebShaker a écrit :
Bon dans la série des questions tordues,
j'aimerai savoir s'il est possible d'obtenir un record initialisé avec les valeurs par défaut configurée dans la base de données.
Par exemple si j'ai un tabl définie comme telle:
CREATE TABLE "tbl" ( "idtbl" serial NOT NULL, "idowner" integer DEFAULT NULL, "private_data" boolean default false, "create_date" timestamp without time zone DEFAULT 'now', "update_date" timestamp without time zone DEFAULT 'now', "title" text, "online" boolean default true, "content" text, PRIMARY key (idbtl) );
j'aimerai pouvoir obtenir un enregistrement qui contiendrai null, null, false, now, now, null, true, null
est ce possible?
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en
lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon
bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies
*********************** http://www.sqlspot.com *************************
WebShaker a écrit :
Bon dans la série des questions tordues,
j'aimerai savoir s'il est possible d'obtenir un record initialisé avec
les valeurs par défaut configurée dans la base de données.
Par exemple si j'ai un tabl définie comme telle:
CREATE TABLE "tbl" (
"idtbl" serial NOT NULL,
"idowner" integer DEFAULT NULL,
"private_data" boolean default false,
"create_date" timestamp without time zone DEFAULT 'now',
"update_date" timestamp without time zone DEFAULT 'now',
"title" text,
"online" boolean default true,
"content" text,
PRIMARY key (idbtl)
);
j'aimerai pouvoir obtenir un enregistrement qui contiendrai
null,
null,
false,
now,
now,
null,
true,
null
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies *********************** http://www.sqlspot.com *************************
WebShaker a écrit :
Bon dans la série des questions tordues,
j'aimerai savoir s'il est possible d'obtenir un record initialisé avec les valeurs par défaut configurée dans la base de données.
Par exemple si j'ai un tabl définie comme telle:
CREATE TABLE "tbl" ( "idtbl" serial NOT NULL, "idowner" integer DEFAULT NULL, "private_data" boolean default false, "create_date" timestamp without time zone DEFAULT 'now', "update_date" timestamp without time zone DEFAULT 'now', "title" text, "online" boolean default true, "content" text, PRIMARY key (idbtl) );
j'aimerai pouvoir obtenir un enregistrement qui contiendrai null, null, false, now, now, null, true, null
est ce possible?
helios
SQLpro a écrit :
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
A +
et a quelle pages est il indiqué comment mettre toute les dates jusqu'à nos jours depuis Jésus christ codé sur 2 octet comme le prétend sur cet usenet l'auteur du dit bouquin ?
SQLpro a écrit :
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en
lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon
bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
A +
et a quelle pages est il indiqué comment mettre toute les dates jusqu'à
nos jours depuis Jésus christ codé sur 2 octet comme le prétend sur cet
usenet l'auteur du dit bouquin ?
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
A +
et a quelle pages est il indiqué comment mettre toute les dates jusqu'à nos jours depuis Jésus christ codé sur 2 octet comme le prétend sur cet usenet l'auteur du dit bouquin ?
Sebastien Lardiere
Le 28/02/2010 19:34, SQLpro a écrit :
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pas du tout, c'est ce que je dit en réponse à son premier message, et il dit bien que ce n'est pas ce qu'il veut,
Il faut relire le thread ...
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
Ah, d'accord, c'est juste pour placer de la publicité déguisée
lol :)
-- Sébastien
Le 28/02/2010 19:34, SQLpro a écrit :
Contrairement à ce que l'on vous as dit, c'est parfaitement possible en
lançant la commande normative :
INSERT INTO tbl DEFAULTS VALUES;
Pas du tout, c'est ce que je dit en réponse à son premier message, et il
dit bien que ce n'est pas ce qu'il veut,
Il faut relire le thread ...
Pour vous perfectionner ua langage SQL, rien de plus simple qu'un bon
bouquin comme le mien ou vous auriez trouver cette syntaxe à la page 170.
Ah, d'accord, c'est juste pour placer de la publicité déguisée