[MYSQL] incrementer a partir d'un valeur autre que 0

incrementer a partir d'un valeur autre que 0 [MYSQL] - SQL/NoSQL - Programmation

Marsh Posté le 20-11-2005 à 17:28:24    

bonjour
 
j'ai une table d'utlisateur, j'ai une propriétié uid qui doit commencé a 5500 puis s'incrementer a chaque céation d'utilisateur. pour l'instant tout le monde est a 5500. j'ai donc essayé ca:
 
ALTER TABLE `ftpuser` CHANGE `uid` `uid` INT( 6 ) NOT NULL DEFAULT '5500' AUTO_INCREMENT
 
 
mais ca ne marche pas: #1067 - Invalid default value for 'uid'  
 
 
qui a une idee ?

Reply

Marsh Posté le 20-11-2005 à 17:28:24   

Reply

Marsh Posté le 20-11-2005 à 18:29:42    

Donc pour l'instant c'est même pas un auto_increment et la valeur par défaut est 5500 c'est ça?
 
Faut enlever le default pour ça et apparement tu peux avoir qu'un autoincrement par table ;)

Reply

Marsh Posté le 20-11-2005 à 19:43:03    

oui c'est ca, comme c'est une gestion d'utilisateur et que ces numero sont  ensuite repercuté sur les droits des home directory c'est pas secure du tout. je veux que chaque user est soon propre uid (normal non ?)
 
arf j'en avais deja autoincrement, mais y pas de solution alors ? comment faire pour que c'est uid evolue tout seul ?

Reply

Marsh Posté le 20-11-2005 à 19:55:27    

alter table <nomtable> set auto_increment = <nouvellevaleur>


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-11-2005 à 22:59:32    

heu ca marche pas ...
 
pour l'instant ma table ressemble a ca
 
CREATE TABLE `ftpuser` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `userid` varchar(32) NOT NULL default '',
  `passwd` varchar(32) NOT NULL default '',
  `uid` smallint(6) NOT NULL default '5500',
  `gid` smallint(6) NOT NULL default '5500',
  `homedir` varchar(255) NOT NULL default '',
  `shell` varchar(16) NOT NULL default '/bin/false',
  `count` int(11) NOT NULL default '0',
  `accessed` datetime NOT NULL default '0000-00-00 00:00:00',
  `modified` datetime NOT NULL default '0000-00-00 00:00:00',
  `LoginAllowed` enum('true','false') NOT NULL default 'true',
  PRIMARY KEY  (`id`)
);
 
je veux inscrementer le 5500 du uid a chaque nouvel enregistrement

Reply

Marsh Posté le 20-11-2005 à 23:15:52    

Si le "uid" est unique, est-il utile d'avoir aussi un "id" :??:  
Autant se servir du "uid" en clé ?
 
L'avantage, c'est que, une fois initialisé correctement, l'incrémentation sera automatique.

Reply

Marsh Posté le 20-11-2005 à 23:23:05    

oui j'y ai pensé, mais comme j'utilise proftpd-mysql, je me suis servi d'une doc pour faire pour mettre en place ma base et je ne sais pas si le schema de ma base peut etre modifié

Reply

Marsh Posté le 20-11-2005 à 23:28:42    

id, userid, uid ?? y a pas comme de la redondance la ?


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 20-11-2005 à 23:50:28    

j'ai modifié, ca marche
 CREATE TABLE `ftpuser` (
`uid` smallint(6) NOT NULL auto_increment,
`userid` varchar(32) NOT NULL default '',
`passwd` varchar(32) NOT NULL default '',
`gid` smallint(6) NOT NULL default '5500',
`homedir` varchar(255) NOT NULL default '',
`shell` varchar(16) NOT NULL default '/bin/false',
`count` int(11) NOT NULL default '0',
`accessed` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` datetime NOT NULL default '0000-00-00 00:00:00',
`LoginAllowed` enum('true','false') NOT NULL default 'true',
PRIMARY KEY (`uid`)
) TYPE=MyISAM COMMENT='Table des utlisateurs ProFTPD' AUTO_INCREMENT=5500;

Reply

Marsh Posté le 21-11-2005 à 01:21:45    

Et c'est bon?

Reply

Marsh Posté le 21-11-2005 à 01:21:45   

Reply

Marsh Posté le 21-11-2005 à 19:09:26    

oui

Reply

Marsh Posté le 22-11-2005 à 02:04:05    

Donc conclusion, un seul auto_increment par table en id primaire ce qui suffit sur un modèle conceptuel correct ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed