-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathSP_N-REGISTROS_KNITHUB.sql
More file actions
49 lines (43 loc) · 1.4 KB
/
Copy pathSP_N-REGISTROS_KNITHUB.sql
File metadata and controls
49 lines (43 loc) · 1.4 KB
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
-- 13. Insertar N pasos a un patrón:
DROP PROCEDURE IF EXISTS LoadStepsIntoPattern;
DELIMITER //
CREATE PROCEDURE LoadStepsIntoPattern
(
IN pUniversallyUniqueIdentifier VARCHAR(36)
)
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
GET DIAGNOSTICS CONDITION 1 @err_no = MYSQL_ERRNO, @message = MESSAGE_TEXT;
IF (ISNULL(@message)) THEN
SET @message = 'Se ha producido un error';
ELSE
SET @message = CONCAT('Internal error: ', @message);
END IF;
ROLLBACK;
RESIGNAL SET MESSAGE_TEXT = @message;
END;
START TRANSACTION;
INSERT INTO Steps (StepNumber, Instruction, PatternId)
SELECT StepNumber, Instruction, PatternId FROM TemporarySteps
WHERE UniversallyUniqueIdentifier = pUniversallyUniqueIdentifier;
COMMIT;
END//
-- Llenado de los datos de la tabla temporal
SET @UUID = '';
SELECT UUID() into @UUID;
SET @PatternId = #Id del patrón donde se insertará N pasos;
CREATE TEMPORARY TABLE TemporarySteps (
UniversallyUniqueIdentifier VARCHAR(36),
StepNumber TINYINT,
Instruction NVARCHAR(1000),
PatternId BIGINT
);
INSERT INTO TemporarySteps (UniversallyUniqueIdentifier, StepNumber, Instruction, PatternId)
VALUES
(@UUID, 1, 'Paso 1', @PatternId),
(@UUID, 2, 'Paso 2', @PatternId),
(@UUID, 3, 'Paso 3', @PatternId),
(@UUID, 4, 'Paso 4', @PatternId),
(@UUID, 5, 'Paso 5', @PatternId);
CALL LoadStepsIntoPattern (@UUID);