Bonjour, je me demandais si c'est possible d'ajouter automatiquement un chiffre exemple si date1 existe automatiquement sa sera date2 etc.. sans php
Code:INSERT INTO `verif` (`name`, `value`) VALUES('date1', '2014-03-04');
Version imprimable
Bonjour, je me demandais si c'est possible d'ajouter automatiquement un chiffre exemple si date1 existe automatiquement sa sera date2 etc.. sans php
Code:INSERT INTO `verif` (`name`, `value`) VALUES('date1', '2014-03-04');
Bonjour,
J'en déduis que cette colonne n'a aucun sens fonctionnel, auquel cas la meilleure méthode est d'utiliser une valeur attribuée par le SGBD (dite "auto-incrément" pour MySQL) l'unicité de ce type d'attribut est garantie par le SGBD :)
Merci je vais essayer l'idée ;)
Salut bygleader.
Je n'ai pas bien compris la nature de votre problème.
J'ai créé deux tables, l'une de nom 'temp' et l'autre 'test'.
Dans la clef primaire de la table 'test' est la colonne 'name', donc pas de doublon dans cette colonne.
La première requête met à joueur la dernière ligne reçue. Il suffit de vérifier la valeur de la date.
La seconde requête insère la ligne à la condition que la valeur de la colonne 'name' n'existe pas.
@+Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 -------------- SET AUTOCOMMIT = 0 -------------- -------------- START TRANSACTION -------------- -------------- DROP DATABASE IF EXISTS `base` -------------- -------------- CREATE DATABASE `base` DEFAULT CHARACTER SET `latin1` DEFAULT COLLATE `latin1_general_ci` -------------- -------------- DROP TABLE IF EXISTS `temp` -------------- -------------- CREATE TABLE `temp` ( `id` integer unsigned not null auto_increment primary key, `nom` varchar(255) not null, `val` varchar(255) not null ) ENGINE=InnoDB DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci` ROW_FORMAT=COMPRESSED -------------- -------------- insert into `temp` (`nom`,`val`) values ('date1', '2018-02-10'), ('date2', '2018-02-11'), ('date1', '2018-02-12'), ('date3', '2018-02-13'), ('date2', '2018-02-14'), ('date3', '2018-02-15'), ('date1', '2018-02-16') -------------- -------------- select * from `temp` -------------- +----+-------+------------+ | id | nom | val | +----+-------+------------+ | 1 | date1 | 2018-02-10 | | 2 | date2 | 2018-02-11 | | 3 | date1 | 2018-02-12 | | 4 | date3 | 2018-02-13 | | 5 | date2 | 2018-02-14 | | 6 | date3 | 2018-02-15 | | 7 | date1 | 2018-02-16 | +----+-------+------------+ -------------- DROP TABLE IF EXISTS `test` -------------- -------------- CREATE TABLE `test` ( `name` varchar(255) not null primary key, `value` varchar(255) not null ) ENGINE=InnoDB DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci` ROW_FORMAT=COMPRESSED -------------- -------------- insert into `test` (`name`,`value`) values ('date1', '2018-02-08') -------------- -------------- select * from `test` -------------- +-------+------------+ | name | value | +-------+------------+ | date1 | 2018-02-08 | +-------+------------+ -------------- commit -------------- -------------- insert into `test` (`name`,`value`) select nom as `name`, val as `value` from `temp` on duplicate key update `value` = val -------------- -------------- select * from `test` -------------- +-------+------------+ | name | value | +-------+------------+ | date1 | 2018-02-16 | | date2 | 2018-02-14 | | date3 | 2018-02-15 | +-------+------------+ -------------- rollback -------------- -------------- insert ignore into `test` (`name`,`value`) select nom as `name`, val as `value` from `temp` -------------- -------------- select * from `test` -------------- +-------+------------+ | name | value | +-------+------------+ | date1 | 2018-02-08 | | date2 | 2018-02-11 | | date3 | 2018-02-13 | +-------+------------+ -------------- COMMIT -------------- -------------- SET AUTOCOMMIT = 1 -------------- Appuyez sur une touche pour continuer...