powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно так или нет
5 сообщений из 5, страница 1 из 1
Можно так или нет
    #39837382
drkill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть пример

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE TABLE `t1` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `dtime` date DEFAULT NULL,
  `ttime` time DEFAULT NULL,
  PRIMARY KEY (`id`)
);
/* вам надо mydate, я для проверки продублировал и dtime, ttime */
CREATE TABLE `t2` (
  `id` int(3) NOT NULL AUTO_INCREMENT,
  `mydate` datetime DEFAULT NULL,
  `dtime` date DEFAULT NULL,
  `ttime` time DEFAULT NULL,
  PRIMARY KEY (`id`)
);

DELIMITER $$
CREATE TRIGGER `test`.`tr_aft_ins_t1` AFTER INSERT ON `test`.`t1`
    FOR EACH ROW BEGIN
	INSERT INTO t2(mydate,dtime,ttime) VALUES
	(CAST(CONCAT(NEW.dtime,' ', NEW.ttime) AS DATETIME), new.dtime,new.ttime);
    END$$
DELIMITER ;
INSERT INTO t1 VALUES(NULL, '2006-11-11','12:12:12'),(NULL, '2015-09-09','02:02:02');



Можно что бы триггер вводил информацию там же где ее и берет? Тоисть в таблицу t1. К примеру:

таблиц t1
id
dtime - здесь берет
ttime - здесь берет
mydate - сюда вставляит

Без таблицы t2? Или так нельзя
...
Рейтинг: 0 / 0
Можно так или нет
    #39837454
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE `t1` ( `id` INT NOT NULL AUTO_INCREMENT,
                    `mydate` DATETIME DEFAULT NULL,
                    `dtime` DATE DEFAULT NULL,
                    `ttime` TIME DEFAULT NULL,
                    PRIMARY KEY (`id`)
);

CREATE TRIGGER fill_mydate
BEFORE INSERT
ON t1
FOR EACH ROW
SET NEW.mydate = CAST(CONCAT(NEW.dtime,' ', NEW.ttime) AS DATETIME);


Код: sql
1.
2.
3.
INSERT INTO t1 (dtime, ttime) 
VALUES ('2006-11-11','12:12:12'),
       ('2015-09-09','02:02:02');
...
Рейтинг: 0 / 0
Можно так или нет
    #39837456
drkill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

А можно еще добавить если долаються изменения в дате или времени то сума тоже менялась?
...
Рейтинг: 0 / 0
Можно так или нет
    #39837463
drkill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
drkill

Экспериментом сам нашел как это делать

-- Dumping database structure for test
CREATE DATABASE IF NOT EXISTS `test` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `test`;

-- Dumping structure for тригер test.t1_before_update
SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
DELIMITER //
CREATE TRIGGER `t1_before_update` BEFORE UPDATE ON `t1` FOR EACH ROW SET NEW.mydate = CAST(CONCAT(NEW.dtime,' ', NEW.ttime) AS DATETIME)//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;
...
Рейтинг: 0 / 0
Можно так или нет
    #39837518
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оператор создания триггера, не содержащий BEGIN-END (состоящий из одной инструкции) не требует переопределения DELIMITER...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Можно так или нет
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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