Я новичок в MySQL и концепции БД и застрял в хранимых процедурах.
У меня есть требование работать с логикой, чтобы получать, проверять, обрабатывать данные из той же таблицы и вставлять в другую таблицу.
У каждой строки есть имя столбца, код, время начала (DD / int),длительность (часы / int), startwith, startafter и т. д.
Мое требование - написать хранимую процедуру с условиями циклических записей таблицы Условие 1: если время начала не равно нулю в таблице A, вставьте в таблицу B с помощьюимя, код, startTime (временная метка, вычисленная из времени начала), конечное время (временная метка, вычисленная из продолжительности), startwith, startafter
Условие 2: если какая-либо строка имеет startwith или startafter и совпадает с кодом из предыдущих вставленных строкзатем при вставке в таблицу B с сохранением времени начала строки 2 после времени окончания предыдущей вставленной строки
Необходимо проверить это для каждой строки. «startwith» и «startafter» могут присутствовать в нескольких строках с одинаковым «code»
Условие: только любой из столбцов «starttime», «startwith», «startafter» будет не нулевым
'Name' 'code' 'starton' 'starttime', 'startwith', 'startafter' 'Duration'
ABC abc_efg 03 9 null null 10
nfg cpd_hnb null null null abc_efg 20
gfg dfd_hab null null abc_efg cpd_hnb 5
gdf ergd_hab 19 null cpd_hnb null 11
Искал подход к массиву, но в mysql это невозможно. Для курсоров отказано, так как они проблематичны. Работа с «временными таблицами» и циклическая обработка данных, но не получение желаемых результатов. может быть, мои запросы на самом деле не работают должным образом, но и с самосоединениями не увенчались успехом. Я могу создать время и выполнить проверку, но не могу получить желаемые результаты, однако вставляется одна строка.
Я хочу нажать этот путь Имя кода startdate endDate 'ABC', 'abc_efg', '2010-03-03 09:00:00 ',' 2010-07-19 23: 59: 00 '