|
@@ 118-143 (lines=26) @@
|
| 115 |
|
$this->connection->exec($sql); |
| 116 |
|
} |
| 117 |
|
|
| 118 |
|
public function createInsertTrigger(Table $table) |
| 119 |
|
{ |
| 120 |
|
$triggerName = sprintf('TRG_%s_ONINSERT', $table->getName()); |
| 121 |
|
$this->logger->info('Creating ' . $triggerName . ' trigger for table ' . $table->getName() . '...'); |
| 122 |
|
|
| 123 |
|
$tableNameQuoted = $this->connection->quote($table->getName()); |
| 124 |
|
|
| 125 |
|
$sql = sprintf( |
| 126 |
|
' |
| 127 |
|
DROP TRIGGER IF EXISTS %s; |
| 128 |
|
|
| 129 |
|
CREATE TRIGGER %s AFTER INSERT ON `%s` |
| 130 |
|
FOR EACH ROW |
| 131 |
|
BEGIN |
| 132 |
|
IF (NEW.id IS NULL AND NEW.createdTime IS NULL ) THEN |
| 133 |
|
INSERT INTO local_insert VALUES (%s, NEW.uid); |
| 134 |
|
DELETE FROM local_delete WHERE table_name = %s AND uid = NEW.uid; |
| 135 |
|
DELETE FROM local_update WHERE table_name = %s AND uid = NEW.uid; |
| 136 |
|
END IF; |
| 137 |
|
END; |
| 138 |
|
|
| 139 |
|
', $triggerName, $triggerName, $table->getName(), $tableNameQuoted, $tableNameQuoted, $tableNameQuoted |
| 140 |
|
); |
| 141 |
|
|
| 142 |
|
$this->connection->exec($sql); |
| 143 |
|
} |
| 144 |
|
|
| 145 |
|
public function createDeleteTrigger(Table $table) |
| 146 |
|
{ |
|
@@ 145-170 (lines=26) @@
|
| 142 |
|
$this->connection->exec($sql); |
| 143 |
|
} |
| 144 |
|
|
| 145 |
|
public function createDeleteTrigger(Table $table) |
| 146 |
|
{ |
| 147 |
|
$triggerName = sprintf('TRG_%s_ONDELETE', $table->getName()); |
| 148 |
|
$this->logger->info('Creating ' . $triggerName . ' trigger for table ' . $table->getName() . '...'); |
| 149 |
|
|
| 150 |
|
$tableNameQuoted = $this->connection->quote($table->getName()); |
| 151 |
|
|
| 152 |
|
$sql = sprintf( |
| 153 |
|
' |
| 154 |
|
DROP TRIGGER IF EXISTS %s; |
| 155 |
|
|
| 156 |
|
CREATE TRIGGER %s BEFORE DELETE ON `%s` |
| 157 |
|
FOR EACH ROW |
| 158 |
|
BEGIN |
| 159 |
|
IF (OLD.id IS NOT NULL) THEN |
| 160 |
|
INSERT INTO local_delete VALUES (%s, OLD.uid, OLD.id); |
| 161 |
|
END IF; |
| 162 |
|
DELETE FROM local_insert WHERE table_name = %s AND uid = OLD.uid; |
| 163 |
|
DELETE FROM local_update WHERE table_name = %s AND uid = OLD.uid; |
| 164 |
|
END; |
| 165 |
|
|
| 166 |
|
', $triggerName, $triggerName, $table->getName(), $tableNameQuoted, $tableNameQuoted, $tableNameQuoted |
| 167 |
|
); |
| 168 |
|
|
| 169 |
|
$this->connection->exec($sql); |
| 170 |
|
} |
| 171 |
|
|
| 172 |
|
public function createUpdateTrigger(Table $table) |
| 173 |
|
{ |