#php #sql #sql-server #cakephp
#php #sql #sql-сервер #cakephp
Вопрос:
я хочу создать идентификатор для каждой части загружаемого файла, чтобы идентифицировать и убедиться, что каждая часть файла уникальна. мой столбец в таблице RAS_Off_Upload:
[RAS_Code]
[Value]
[Remark]
[SOF]
[Created_by]
[CLN_No]
[Lot_No]
[Prod]
[Date]
[Time]
[id]
[Line]
[Up_Time]
например:
процесс загрузки продолжается каждые 1 час, поэтому мне нужно, чтобы в первом загруженном в пакет файле все строки имели тот же идентификатор, что и 1, затем второй загружаемый в пакет файл будет иметь тот же идентификатор, что и 2 ….. затем продолжайте …. идентификатор увеличивается…
я не уверен, делать ли это на cake php или добавлять запрос на sql server. ценю все комментарии!
Ответ №1:
попробуйте этот подход:
- Добавьте столбец в таблицу RAS_Off_Upload, например, «BatchLoadID»
- В конце процесса массовой загрузки запустите это:
(примечание: я предполагаю, что он будет запускаться каждый час и завершаться задолго до часа.)
DECLARE @LastBatchLoadID INT = (SELECT COALESCE(MAX(BatchLoadID), 1) FROM RAS_Off_Upload);
SET @LastBatchLoadID = @LastBatchLoadID 1;
UPDATE RAS_Off_Upload SET BatchLoadID = @LastBatchLoadID WHERE BatchLoadID IS NULL;
Комментарии:
1. спасибо за комментарий! когда я запускаю его на sql server, он показывает неправильный синтаксис рядом с ‘)’. я не уверен, в чем проблема. извините, я новичок в sql server.
2. можете ли вы попробовать еще раз сейчас? В первом операторе у меня была дополнительная скобка.
3. Это работает успешно! Большое вам спасибо за помощь! я хочу спросить, нужно ли мне хранить в хранимой процедуре, чтобы сохранить ее для частого запуска? или создать задание по расписанию?
4. Да, вы могли бы обернуть его в SP. Я бы запустил его точно после завершения задачи пакетной загрузки.
5. Спасибо! я столкнулся с другой проблемой: когда я дважды загружаю файл, запрос не распознает пакет файла. например, если 1 файл содержит 7 строк данных, то, если я продолжу загружать 9 файлов, он покажет 63 строки с BatchLoadID 1. у меня есть 9 строк, выполняющих процесс, так что это означает, что каждый час в базе данных будет загружаться 9 файлов. как я могу решить эту проблему?