ich diese Tabelle muß MyISAM:CREATE TABLE nicht funktioniert zu InnoDB, sondern arbeitet
CREATE TABLE `peso_tec_dt_aj` (
`idade` int(11) DEFAULT NULL,
`tecnico` varchar(50) DEFAULT NULL,
`obt` double DEFAULT NULL,
`pad` decimal(4,3) DEFAULT NULL,
`aves_peso` int(11) DEFAULT NULL,
`data_domingo` datetime DEFAULT NULL,
`data_domingo_ajustada` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
KEY `peso_tec_dt_aj_idade_tecnico_index` (`idade`,`tecnico`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Die Abfrage unten funktioniert, wenn ich das schaffen mit der Aussage ENGINE = MYSAM verwenden, aber nicht, wenn ich mit Motor verwenden InnoDB.
Es funktioniert auch, wenn ich Aggregationen nicht machen oder wenn ich das Spaltenfeld entfernen data_domingo
(DATETIME-) in der Gruppe von:
CREATE TABLE bucket_15.resultado as (
select
peso_tec_dt_aj.idade,
peso_tec_dt_aj.tecnico,
(
ROUND(
SUM(peso_tec_dt_aj.obt * peso_tec_dt_aj.aves_peso)/
SUM(peso_tec_dt_aj.aves_peso), 3
)
) as campo_computeado
from bucket_15.peso_tec_dt_aj
group by
peso_tec_dt_aj.idade,
peso_tec_dt_aj.tecnico,
peso_tec_dt_aj.data_domingo
);
Nach Durchlauf dieser Abfrage, wird MySQL keine Fehler zeigen. Die Abfrage ohne create table
läuft in Ordnung.
Die obige Abfrage ist jedoch sehr einfach. Warum kann MySQL keine Tabelle mit diesen Spalten und Daten erstellen?
MySQL Version: 5.7
Hier einige Screenshots, Ihnen zu zeigen, dass mit der gleichen Abfrage keine Ergebnisse, wenn der Motor nicht MYISAM ist.
ERSTES BILD: Führen Sie die Abfrage aus, die ich für die Anweisung CREATE WITH SELECT verwenden werde, die beide Engines verwendet: MYISAM und InnoDB.
zweite Bild: Führen Sie die Abfrage ohne ENGINE = MYISAM. Das obige Ergebnis wird auf der neuen Tabelle resultado
erwartet, aber es ist nicht: ohne Fehler.
drittes Bild: MIT ENGINE = MYISAM - Tabelle resultado
ist magisch
Ich habe dies getestet und es funktioniert ohne Fehler mit InnoDB. Bitte kopieren Sie die genaue Fehlermeldung in Ihre Frage oben. Wenn Sie eine Frage zu Stack Overflow über einen Fehler stellen, fügen Sie immer den genauen Text der Fehlermeldung hinzu. –
Im folgenden Skript funktioniert alles wie erwartet [db-fiddle] (https://www.db-fiddle.com/f/kFwq25KffTaXriMxZLUDd8/1). – wchiquito
'Fehler'! =' Keine Fehler'. Können Sie 'CREATE TABLE' von MySQL Command Line ausführen ?. – wchiquito