J'ai deux tables. table temporaire:Insérer des données d'une table à une autre table et ajouter de nouvelles valeurs
CREATE TABLE IF NOT EXISTS `temporary` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`FK_user` int(11) NOT NULL,
`FK_bin` varchar(50) NOT NULL,
`orderDate` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=35 ;
Et les commandes tableau:
CREATE TABLE IF NOT EXISTS `orders` (
`id` int(11) NOT NULL,
`FK_user` int(11) NOT NULL,
`FK_bin` varchar(50) NOT NULL,
`orderNumber` varchar(11) NOT NULL,
`orderDate` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Je veux insérer toutes les valeurs de la table temporaire à la table des commandes et ajouter orderNumber manuellement avec ceci: uniqid(rand())
.
Je vérifiions INSERT INTO orders SELECT * FROM temporary WHERE FK_user = ?
Mais ils ne fonctionnent pas parce que orderNumber n'existent pas dans le tableau temporaire ...
Comment puis-je faire? S'il vous plaît
Je ne vois pas le problème ici. Il suffit de spécifier les colonnes sur la sélection 'INSERT INTO ORDERS (id, utilisateur_FK, FK_bin, orderNumer, orderDate) SELECT t.id, t.FK_user, t.FK_bin, UUID() comme numéro de commande, t.orderDate de t temporaire; ' – Rumpelstinsk
N'utilisez pas 'SELECT *'. mentionnez chaque nom de colonne dans les instructions insert et select ... – Naga