2010-06-29 11 views
1

Cela peut sembler compliqué, mais ce n'est pas le cas. J'ai une table appelée « ordres », avec des champs:Champ d'insertion SQL, avec la valeur d'un autre champ d'incrémentation automatique + valeur

id INT(11) auto_increment, 
realid INT(14) 

Maintenant, je veux à tout insérer dans ce tableau, faire quelque chose comme:

INSERT INTO orders VALUES (null, id+1000); 

Cependant, je vais faire sur boutique qui est actuellement en ligne, et je veux tout changer en 5 minutes. Quelque chose comme ça va-t-il fonctionner? Si non, comment je fais ça?

+1

Quels RDBM utilisez-vous? – pcent

+1

Pourquoi avoir le champ id si vous n'allez y insérer que NULL? – Tahbaza

+0

Donc, vous voulez insérer des paires comme (1, 1001), (2, 1002) et ainsi de suite? Pourquoi voudriez-vous faire ça? Vous pouvez compter le "realid" chez le client ou en sélectionner si vous le souhaitez, sinon vous apporterez une redondance à votre db. –

Répondre

5

Je pense qu'une solution plus simple serait une colonne calculée en supposant que votre SGBD supporte (Ceci est en utilisant la syntaxe SQL Server, bien que la syntaxe MySql doit être presque identique, sauf que vous utiliseriez AUTO_INCREMENT au lieu de Identity(1,1)):

Create Table Foo (
        Id int not null identity(1,1) 
        , Name varchar(50) 
        , Bar As Id + 1000 
        ) 

Bien sûr, vous pouvez également le faire dans la présentation ou le niveau métier plutôt que dans la base de données.

Questions connexes