Kamelot Blog

Aller au contenu | Aller au menu | Aller à la recherche

lundi 24 avril 2006

lun
24
avr '06

Pas encore de Planet Mysql en Français.

Arjen Lentz m'a répondu à ma proposition pour un planet MySQL en Français. La réponse est négative car il faut être plusieurs. Donc si vous avez un blog qui parle relativement fréquement de MySQL en français et avec un feed RSS dédidé à MySQL signalez le moi en commentaire ou par email... Merci

Lire la suite...

lun
24
avr '06

Mysqlien jusqu'au bout

Il y en a qui sont vraiment fan de Sakila ....

photos présentées  sur  Sakila le daupnin de MySQL AB

mardi 18 avril 2006

mar
18
avr '06

Piège dans Last_insert_id()

Attention last_insert_id() ne retourne pas forcément l'id du dernier enregistrement ajouté !!!!

Lire la suite...

mar
18
avr '06

mémento MySQL

lundi 17 avril 2006

lun
17
avr '06

Les mots réservés de mysql

ADD ALL ALTER
ANALYZE AND AS
ASC ASENSITIVE BEFORE
BETWEEN BIGINT BINARY
BLOB BOTH BY
CALL CASCADE CASE
CHANGE CHAR CHARACTER
CHECK COLLATE COLUMN
CONDITION CONNECTION CONSTRAINT
CONTINUE CONVERT CREATE
CROSS CURRENT_DATE CURRENT_TIME
CURRENT_TIMESTAMP CURRENT_USER CURSOR
DATABASE DATABASES DAY_HOUR
DAY_MICROSECOND DAY_MINUTE DAY_SECOND
DEC DECIMAL DECLARE
DEFAULT DELAYED DELETE
DESC DESCRIBE DETERMINISTIC
DISTINCT DISTINCTROW DIV
DOUBLE DROP DUAL
EACH ELSE ELSEIF
ENCLOSED ESCAPED EXISTS
EXIT EXPLAIN FALSE
FETCH FLOAT FLOAT4
FLOAT8 FOR FORCE
FOREIGN FROM FULLTEXT
GOTO GRANT GROUP
HAVING HIGH_PRIORITY HOUR_MICROSECOND
HOUR_MINUTE HOUR_SECOND IF
IGNORE IN INDEX
INFILE INNER INOUT
INSENSITIVE INSERT INT
INT1 INT2 INT3
INT4 INT8 INTEGER
INTERVAL INTO IS
ITERATE JOIN KEY
KEYS KILL LABEL
LEADING LEAVE LEFT
LIKE LIMIT LINES
LOAD LOCALTIME LOCALTIMESTAMP
LOCK LONG LONGBLOB
LONGTEXT LOOP LOW_PRIORITY
MATCH MEDIUMBLOB MEDIUMINT
MEDIUMTEXT MIDDLEINT MINUTE_MICROSECOND
MINUTE_SECOND MOD MODIFIES
NATURAL NOT NO_WRITE_TO_BINLOG
NULL NUMERIC ON
OPTIMIZE OPTION OPTIONALLY
OR ORDER OUT
OUTER OUTFILE PRECISION
PRIMARY PROCEDURE PURGE
RAID0 READ READS
REAL REFERENCES REGEXP
RELEASE RENAME REPEAT
REPLACE REQUIRE RESTRICT
RETURN REVOKE RIGHT
RLIKE SCHEMA SCHEMAS
SECOND_MICROSECOND SELECT SENSITIVE
SEPARATOR SET SHOW
SMALLINT SONAME SPATIAL
SPECIFIC SQL SQLEXCEPTION
SQLSTATE SQLWARNING SQL_BIG_RESULT
SQL_CALC_FOUND_ROWS SQL_SMALL_RESULT SSL
STARTING STRAIGHT_JOIN TABLE
TERMINATED THEN TINYBLOB
TINYINT TINYTEXT TO
TRAILING TRIGGER TRUE
UNDO UNION UNIQUE
UNLOCK UNSIGNED UPDATE
UPGRADE USAGE USE
USING UTC_DATE UTC_TIME
UTC_TIMESTAMP VALUES VARBINARY
VARCHAR VARCHARACTER VARYING
WHEN WHERE WHILE
WITH WRITE X509
XOR YEAR_MONTH ZEROFILL

dimanche 16 avril 2006

dim
16
avr '06

Nom de table


DROP table IF EXISTS hello;
CREATE TABLE `hello` (`foo` varchar(3) NOT NULL default 'bar');

DROP table  IF EXISTS helloX;
CREATE TABLE helloX (`foo` varchar(3) NOT NULL default 'bar');

DROP table  IF EXISTS ` helloY`;
CREATE TABLE ` helloY` (`foo` varchar(3) NOT NULL default 'bar');

DROP table IF EXISTS  `_helloZ`;
CREATE TABLE `_helloZ` (`foo` varchar(3) NOT NULL default 'bar');

DROP table IF EXISTS  _helloS;
CREATE TABLE _helloS (`foo` varchar(3) NOT NULL default 'bar');

DROP table IF EXISTS `4helloT` ;
CREATE TABLE `4helloT` (`foo` varchar(3) NOT NULL default 'bar');

DROP table IF EXISTS 4helloU   ;
CREATE TABLE 4helloU (`foo` varchar(3) NOT NULL default 'bar');

DROP table IF EXISTS `hello$V`  ;
CREATE TABLE `hello$V` (`foo` varchar(3) NOT NULL default 'bar');

Qu'avons nous à l'arrivée ?

  • mydb.4hellot
  • mydb.4hellou
  • mydb._hellos
  • mydb._helloz
  • mydb.hello
  • mydb.hello$v
  • mydb.hellox
  • mydb. helloy
Notez que tout est lowercasé sur mon windows. Maintenant il faut voir si on peut écrire et lire dedans. INSERT INTO hello set foo='baz';

INSERT INTO hello set foo='baz';
INSERT INTO helloX set foo='baz';
INSERT INTO ` helloY` set foo='baz';
INSERT INTO `_helloZ` set foo='baz';
INSERT INTO _helloS set foo='baz';
INSERT INTO `4helloT`  set foo='baz';
INSERT INTO 4helloU    set foo='baz'; 
INSERT INTO `hello$V`   set foo='baz';
Et sur les colonnes

CREATE TABLE ` test` (`i` varchar(3) NOT NULL default 'bar');
ALTER TABLE `mydb`.`test` ADD COLUMN `hello` VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
ALTER TABLE `mydb`.`test` ADD COLUMN `helloX` VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
ALTER TABLE `mydb`.`test` ADD COLUMN ` helloY` VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
ALTER TABLE `mydb`.`test` ADD COLUMN `_helloZ` VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
ALTER TABLE `mydb`.`test` ADD COLUMN helloS VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
ALTER TABLE `mydb`.`test` ADD COLUMN `4hello` VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
ALTER TABLE `mydb`.`test` ADD COLUMN 5hello VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
ALTER TABLE `mydb`.`test` ADD COLUMN `hello$U` VARCHAR(45) NOT NULL DEFAULT '' AFTER `i`;
Tout roule.

vendredi 14 avril 2006

ven
14
avr '06

un autoincrement n'est pas forcémént unique

Créons une table MYISAM idT en char c pour bien le différencier de l'autre partie de la PK idN

Remarquez donc que

  • 1° l'autoincrement est sur la 2ème colonne
  • 2° la PK est sur 2 colonnes
  • CREATE TABLE `test` (
    `idT` CHAR( 3 ) NOT NULL ,
    `idN` INT NOT NULL AUTO_INCREMENT ,
    `blah` VARCHAR( 15 ) DEFAULT 'blah' NOT NULL ,
    PRIMARY KEY ( `idT` , `idN` )
    ) ENGINE=MYISAM;
    INSERT INTO `test` ( `idT` , `blah` )
    VALUES ('a', 'blah'), ('a', 'blah');
    INSERT INTO `test` ( `idT` ,  `blah` )
    VALUES ('b', 'blah'), ('c',  'blah');
    INSERT INTO `test` ( `idT` ,  `blah` )
    VALUES ('a','blah'), ('b',  'blah'), ('c', 'blah');

    Essayez ca et regardez le resultat

    Lire la suite...

    Tags