Claramente, lo siguiente es incorrecto.Seleccione de la misma tabla que Insertar o Actualizar
INSERT INTO `aTable` (`A`,`B`) VALUES((SELECT MAX(`A`) FROM `aTable`)*2),'name');
puedo obtener el valor:
consulta SQL:
INSERT INTO `aTable` (`A`, `B`)
VALUES
(
(
SELECT MAX(`A`)
FROM `aTable`
) *2
, 'name'
)
MySQL dijo:
1093 - No es posible especificar la tabla de destino 'unaTabla' para la actualización de cláusula
Por lo tanto, estoy tratando de hacer una tabla de mapa de bits, cada fila corresponde a un bit, y tiene un 'mapa' va lue.
Para insertar en la tabla, no quiero hacer dos consultas, quiero hacer una. ¿Cómo debo hacer esto?
Nadie comentó sobre esto, pero como estoy tratando de hacer un mapa de bits, debería ser * 2 not^2, mi error, tenga en cuenta que es por eso que los comentarios a menudo dicen^2, fue un error en el versión que los comentaristas leen.
No, estoy tratando de seleccionar desde la misma tabla que el inserto, y a MySQL no le gusta eso ... Sory, no había escrito la consulta correctamente la primera vez, pero el Select seguía siendo correcto . –
hrm. De acuerdo, ¿MySQL tiene funciones definidas por el usuario? Entonces, ¿puede crear una función que devuelva el "MAX (' A') actual "y usarla en su extracto? – stephenbayer
Lo hace (procedimientos almacenados) pero no estoy seguro de si te permitirá hacerlo todavía. Vale la pena intentarlo –