Hola
mira espero poder ayudarte...
1-- Por el momento no hay manera de declarar UDT estos son los
Tipos de datos Soportados2-- Asi es es correcto apartir de la version 5.0.2
3-- Puedes definir uno por cada combinacion entre el evento y el tiempo en que se ejecuta la accion ej. (BEFORE INSERT,AFTER INSERT).... asi que pudieran ser 6 disparadores por tabla.... por ahora...
"There cannot be two triggers for a given table that have the same trigger action time and event. For example, you cannot have two BEFORE UPDATE triggers for a table. But you can have a BEFORE UPDATE and a BEFORE INSERT trigger, or a BEFORE UPDATE and an AFTER UPDATE trigger." Leer mas...4--De Momento no es posible cambiar el orden de la ejecucion aunque existe
ACTION_ORDER en la tabla de
TRIGGERS en
INFORMATION_SCHEMA probablemente para versiones posteriores...
"El comando ACTION_ORDER contiene la posición ordinal de la acción del disparador en la lista de todos los disparadores similares en la misma tabla. Actualmente, este valor siempre es 0, porque no es posible tener más de un disparador con el mismo EVENT_MANIPULATION y ACTION_TIMING en la misma tabla." Leer más...
5--
Reglas para los nombres MySQL6-- Check es Igual en MySQL ej.
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
SQL </td></tr><tr><td id='CODE'><!--sql1-->CREATE TABLE empleados (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`edad` INTEGER UNSIGNED Check (edad
>18
and edad
<99),
PRIMARY KEY(`id`)
)
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
Aunque es ignorado por MySQL
... osea no funciona (al menos en windows) lo que puedes hacer es crear
Llaves Foraneas para poder crear las restricciones (
constraints)
7-- Pues generas un archivo de texto con todas las instrucciones regularmente con extencion SQL anque no es relevante ya que es texto.... y lo ejecutas no requieres utilizar
Go ni ningun 'separador' ej...
base.sql
<!--sql--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
SQL </td></tr><tr><td id='CODE'><!--sql1-->CREATE DATABASE bd;
USE bd;
[color=blue;font-weight]DROP[/color] TABLE IF EXISTS `account`;
CREATE TABLE `account` (
`acct_num` int(11) NOT NULL auto_increment,
`amount` decimal(10,2) default NULL,
PRIMARY KEY (`acct_num`)
) ENGINE
=InnoDB DEFAULT CHARSET
=latin1;
[color=blue;font-weight]INSERT[/color]
INTO `account` (`acct_num`,`amount`) VALUES
(1,
'20.00'),
(4,
'400.00'),
(5,
'500.00');
[color=blue;font-weight]DROP[/color] TABLE IF EXISTS `empleados`;
CREATE TABLE `empleados` (
`idempleado` int(11) NOT NULL auto_increment,
`nombre` varchar(32) default NULL,
`departamento` varchar(1) default NULL,
`sueldo` double default NULL,
PRIMARY KEY (`idempleado`),
KEY `id` (`idempleado`)
) ENGINE
=InnoDB DEFAULT CHARSET
=latin1;
[color=blue;font-weight]INSERT[/color]
INTO `empleados` (`idempleado`,`nombre`,`departamento`,`sueldo`) VALUES
(1,
'Juan Perez',
'1',5000),
(2,
'Laura Morales','',5500),
(3,
'Luis Gutierrez','',8500),
(4,
'Pedro Solar','',500),
(5,
'David Vilchez','',5500);
<!--sql2--></td></tr></table><div class='postcolor'><!--sql3-->
para ejecutarlo puedes hacer esto por ejemplo:
Linea de comando: mysql>\. C:\base.sql;
O puedes usar algun programa con entorno grafico que te ayude como:
Saludos
y Suerte