Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ON DUPLICATE KEY UPDATE with timestamp / 4 сообщений из 4, страница 1 из 1
13.05.2014, 15:26:55
    #38639895
xandr_ukr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ON DUPLICATE KEY UPDATE with timestamp
Добрый день!
Имеется следующее

Код: sql
1.
2.
3.
4.
5.
6.
7.
create table test
(
  a int not null,
  b timestamp not null,
  c int,
  unique key  (a,b)
)



Далее выполняем запрос
INSERT INTO test (a,b,c) VALUES (1,timestamp(CURRENT_DATE), 1)
ON DUPLICATE KEY UPDATE c=VALUES(c);

1 выполнение - новая строка
2 выполнение - update (т.е. поле "C" становится = 2 )
3 выполнение - новая строка с текущей датой и временем.

Ну а мне как бы надо чтобы и осталась 1 строка только при 3 выполнении значение равно было 3.

Почему произвольно в TS поле запихивается то, что не указано в селекте?

Заранее спасибо!
...
Рейтинг: 0 / 0
13.05.2014, 16:15:01
    #38639974
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ON DUPLICATE KEY UPDATE with timestamp
Покажите, как это все в консоли выглядит?
...
Рейтинг: 0 / 0
13.05.2014, 16:28:50
    #38639989
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ON DUPLICATE KEY UPDATE with timestamp
xandr_ukr1 выполнение - новая строка
2 выполнение - update (т.е. поле "C" становится = 2 )
3 выполнение - новая строка с текущей датой и временем.
Враки.
Код: sql
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.
mysql> create table test
    -> (
    ->   a int not null,
    ->   b timestamp not null,
    ->   c int,
    ->   unique key  (a,b)
    -> );
Query OK, 0 rows affected (0.56 sec)

mysql> INSERT INTO test (a,b,c) VALUES (1,timestamp(CURRENT_DATE), 1)
    ->  ON DUPLICATE KEY UPDATE c=VALUES(c);
Query OK, 1 row affected (0.13 sec)

mysql> select * from test;
+---+---------------------+------+
| a | b                   | c    |
+---+---------------------+------+
| 1 | 2014-05-13 00:00:00 |    1 |
+---+---------------------+------+
1 row in set (0.03 sec)

mysql> INSERT INTO test (a,b,c) VALUES (1,timestamp(CURRENT_DATE), 1)
    ->  ON DUPLICATE KEY UPDATE c=VALUES(c);
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
+---+---------------------+------+
| a | b                   | c    |
+---+---------------------+------+
| 1 | 2014-05-13 00:00:00 |    1 |
+---+---------------------+------+
1 row in set (0.00 sec)

mysql> INSERT INTO test (a,b,c) VALUES (1,timestamp(CURRENT_DATE), 1)
    ->  ON DUPLICATE KEY UPDATE c=VALUES(c);
Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;
+---+---------------------+------+
| a | b                   | c    |
+---+---------------------+------+
| 1 | 2014-05-13 00:00:00 |    1 |
+---+---------------------+------+
1 row in set (0.00 sec)

mysql>
...
Рейтинг: 0 / 0
13.05.2014, 16:32:39
    #38639991
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ON DUPLICATE KEY UPDATE with timestamp
Или имелось в виду, что третий параметр в запросе меняется? ну тогда вспомни, что по дефолту при обновлении ON UPDATE = CURRENT TIMESTAMP
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ON DUPLICATE KEY UPDATE with timestamp / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]