No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de SQL y MySQL

Curso de SQL y MySQL

Alberto Alcocer

Alberto Alcocer

Comando INSERT

11/24
Recursos

Aportes 153

Preguntas 28

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Si en el 1er y 3er ejemplo de INSERT les marca el error:

ERROR 1366 (HY000): Incorrect integer value: ‘’ for column ‘author_id’ at row 1

Esto puede solucionarse usando NULL, el ejemplo de clase hace mención que sea ‘’ (Únicamente comillas simples) donde se insertan los datos en vez de NULL , si las comillas simples se agregan marcara un error ya que está tomando ese apartado como STRING y en la tabla authors especificamos que sea INTEGER, también puede usarse el 1 (pues es un entero), así que sea 1 o NULL en donde se insertan los datos estará correcto, quedaría como:

Ejemplo 1: INSERT INTO authors (author_id, name, nationality)
VALUES (NULL, ‘Juan Rulfo’, ‘MEX’);

Ejemplo 3: INSERT INTO authors
VALUES (NULL, ‘Juan Gabriel Vásquez’, ‘COL’);

Hay varios videos del curso mal editado, en el cual se esta explicando cierta acción, y luego se corta el video y comienza con la misma explicación, en este video se puede apreciar desde el minuto 3:336 seg al 4:22.
Podrían tomarse la molestia de editar bien los videos, tan reiterativo el error que llega a ser molesto.

A los que le arroja el error:
ERROR 1366 (HY000): Incorrect integer value: '' for column 'author_id' at row 1

Prueben con cambiar el campo de ‘’ por NULL:

INSERT INTO authors(author_id, name, nationality) VALUES(NULL, 'Gabriel García Marquez', 'COL');```

Otra forma de insertar puede ser de la siguiente manera:

  • Sin especificar los campos a insertar solo indicando los valores utilizando un SELECT
    INSERT INTO authors
    SELECT ‘’,‘Juan Gabriel Vazques’,‘COL’;

  • Especificando todos los campos de la tabla a insertar utilizando un SELECT.
    INSERT INTO authors (author_id,name,nationality)
    SELECT ‘’,‘Gabriel Garcia Marquez’,‘COL’;

  • **Especificando solo algunos campos de la tabla a insertar **utilizando un SELECT
    INSERT INTO authors (name,nationality)
    SELECT ‘Julio Cortaza’,‘ARG’;

Saludos.

9-Comando INSERT

  1. Es buena práctica:Tener una buen modelo de bases de datos y un buen modelo de negocio que evite la duplicidad de información ya que esto nos ahorra el tiempo de procesamiento, ahorra en espacio.

  2. Es buena práctica realizar inserciones de 50 registros máximo. Esto no es necesariamente obligatorio pero funciona muy bien y esto se hace porque sí hay algún problema en la inserción sólo se pierde datos de 50 a 50.

/*Existe varias formas de hacer insert, según las
versiones de mysql que tengamos instalados estas son
algunas de ellas*/
INSERT INTO  `authors` (author_id,name,nationality)
    VALUES ( '','Juan Rulfo','MEX');
INSERT INTO  `authors` (author_id,name,nationality)
    VALUES ('','Gabriel García Máquez','COL');
INSERT INTO  `authors` 
     VALUES ('Juan Gabriel Vasquez','COL');
/*pero la versión que manejamos  esta es una de las que admite*/
INSERT INTO  `authors` (name,nationality)
    VALUES ('Juan Rulfo','MEX');
/*otra forma, que sí funciona*/
INSERT INTO  `authors` (name,nationality) 
    VALUES  
            ('Juan Rulfo','MEX'),
            ('Gabriel García Máquez','COL'),
            ('Juan Gabriel Vasquez','COL'),
            ('Julio Cortázar','COL'),
            ('Isabelle Allende','CHI'),
            ('Octavio Paz','MEX'),
            ('Juan Carlos Onetti','URU');
/*o si sabemos que hay un id que no existe podemos insertarlos juntos con su  id*/
INSERT INTO  `authors` (author_id,name,nationality)
    VALUES ('16','Pablo Neruda','MEX');

Considero que para no repetir paises sería conveniente crear una tabla adicional en la cual estén los países.

Aquí les dejo la inserción de todos los datos en el vídeo;

INSERT INTO authors (name, nationality)
VALUES('Juan Rulfo', 'MEX'),
('Gabriel García Márquez', 'COL'),
('Juan Gabriel Vasquez', 'COL'),
('Julio Cortázar', 'ARG'),
('Isabel Allende', 'MEX'),
('Octavio Paz', 'MEX'),
('Juan Carlos Onelli', 'URU');

bueno ya sabemos insertar pero ustedes se preguntaran y como eliminamos el contenido que insertamos dentro de la base de datos, pues déjame darte este aporte te servirá 😃 les presento a mi amigo DELETE.

Si mandamos la cadena vacia ’ ', me sacó error, por eso mejor mandamos un null para que el campo exista pero sin informacion

En las versiones más actuales de Mysql la sisntaxis que utiliza @beco ya no es utilizada ** ’ ’ **.

En su lugar se utiliza NULL y 0

_"An integer or floating-point column can have the additional attribute AUTO_INCREMENT. When you insert a value of NULL (recommended) or 0 into an indexed AUTO_INCREMENT column, the column is set to the next sequence value. "

_

mysql> CREATE TABLE operations (
-> operation_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
-> book_id INTEGER UNSIGNED,
-> client_id INTEGER UNSIGNED,
-> type ENUM(‘PRE’,‘DEV’,‘VEN’) NOT NULL,
-> created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-> updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
-> ON UPDATE CURRENT_TIMESTAMP,
-> finished TINYINT(1) NOT NULL);
Query OK, 0 rows affected (0.01 sec)

Cuando ejecuto el primer INSERT

<INSERT INTO authors(author_id, name, nationality) VALUES('', 'Juan Rulfo', 'MEX');>

Me marca el siguiente error

<ERROR 1366 (HY000): Incorrect integer value: '' for column 'author_id' at row 1
>
y fue necesaria la siguiente modificación:

<INSERT INTO authors(author_id, name, nationality) VALUES(NULL, ‘Juan Rulfo’, ‘MEX’);>


Ok tiene razón al menos en mi caso la base de datos no me dejo ingresar un valor distinto a entero para el campo author_id

Buenísimo el INSERT INTO para el insert de varios registros a una tabla, la vd que está buenísimo

La solucion al problema de ‘’ es poner NULL, ejemplo

INSERT INTO authors(author_id, name, nationality) 
VALUES (NULL, 'Juan Rulfo', 'MEX');

excelente clase.

Hola, a mi me funciono así, para ejecutar el autoincremento;
INSERT INTO authors VALUES(null,'Horacio arquez','COL');

En mi caso no me permitió:
– 1 NO DEJA, POR EL ID VACIO
INSERT INTO authors(author_id,name, nationality)
VALUES (’’,‘Juan Rulfo’,‘Mex’);

Excelente curso

CREATE TABLE IF NOT EXISTS operations(
operation_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
book_id INTEGER UNSIGNED NOT NULL,
client_id INTEGER UNSIGNED NOT NULL,
type ENUM(‘P’, ‘D’, ‘V’) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
finished TINYINT(1) NOT NULL DEFAULT 0
);
create table IF NOT EXISTS books (
book_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
author INTEGER UNSIGNED,
title VARCHAR(100) NOT NULL,
year INTEGER UNSIGNED NOT NULL DEFAULT 1900,
language VARCHAR(2) NOT NULL DEFAULT ‘es’ COMMENT ‘ISO 639-1 Language’,
cover_url VARCHAR(500),
price DOUBLE(6,2) NOT NULL DEFAULT 10.0,
sellable TINYINT(1) DEFAULT 1,
copies INTEGER NOT NULL DEFAULT 1,
description TEXT
);
CREATE TABLE IF NOT EXISTS author(
author_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
nationality VARCHAR(3)
);
CREATE TABLE clients (
client_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(40) NOT NULL UNIQUE,
birthdate DATETIME,
gender ENUM(‘M’,‘F’,‘ND’) NOT NULL,
active TINYINT(1) NOT NULL DEFAULT 1,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

INSERT INTO authors (author_id, name, nationality)
VALUES(NULL, 'Juan Rulfo', 'MEX');

INSERT INTO authors (name, nationality)
VALUES('Gabriel García Márquez', 'COL');

INSERT INTO authors 
VALUES(null, 'Andrés Caicedo', 'COL');

INSERT INTO authors 
VALUES(null, 'Julio Cortazar','ARG');```
 
Asegurarse de que exista un espacio entre authors' y VALUES';  de otra forma, me decía que tenía error de sintaxis.
CREATE TABLE IF NOT EXISTS operations (
`operation_id` INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
`book_id` INTEGER,
`client_id` INTEGER,
`type` ENUM('vendido','prestado','devuelto') NOT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
`finshed` TINYINT(1) NOT NULL
);

ALGUIEN DE PERU CON QUIEN PUEDA PODAMOS REUNIRNOS

¿Cuales son los IDE que usan para escribir código de MySQL para Mac?

Lo que yo hago es colocar autoincremental y no colocar esa columna a la hora de hacer el insert te evita problemas.

Existen varias manera de insertar datos en las tablas a través del comando INSERT
Especificando todas las columnas y todos los valores

  • INSERT INTO authors (author_id, name, nationality) VALUES (’ ', ‘Juan Rulfo’, ‘MEX’ );
    -Se deja el campo vacío del id por el auto incrementable.
    Especificando solo las columnas a las que se les agregaran valores
  • INSERT INTO authors (name, nationality) VALUES (‘Juan Rulfo’, ‘MEX’ );
    Sin especificar las columnas y solo los valores
  • INSERT INTO authors VALUES (’ ', ‘Juan Rulfo’, ‘MEX’ );
    Aqui se deben agregar todos los valores sin importar si son campos vacios porque se entiende que se llenaran todas las columnas sin excepciones

Que buenos consejos va dejando el profe alberto durante el video !!!
(Y)

Para la configuración de la instalación que manejo, es necesario hacer esto:

INSERT INTO authors(author_id,name,nationality)
VALUES(NULL,‘Juan Rulfo’,‘MEX’);

INSERT INTO authors(name, nationality)
VALUES(‘Gabriel Garcia Marquez’, ‘COL’);

INSERT INTO authors
VALUES(NULL, ‘Juan Gabriel Vazquez’, ‘COL’);

De las tres formas, solo me funcionó la segunda… adjunto mi ejemplo:

Alguien mas tuvo problemas con los acentos? ¿saben como se puede solucionar?

Si por error escribes mal uno de los imputs no me dejaba meter ni salirme de ahi, tenia que cerrar el bash ¿alguien sabe como solucionarlo sin recurrir a cerrarlo?

Necesta ser más didáctico el profesor!!!

En lo años que llevó aprendiendo a programar y manejar bases de datos e usado una práctica para los campos de la tabla de la forma siguiente: Nombre de la tabla siempre en minúscula. Nombre de los campos: Trabajo con prefijos ej. Una tabla de inventario coloco en las columnas INV_ID, INV_DESCRIPTION, INV_DATE ETC ETC. Ventajas hay campos como description que se repite mucho y esté método ayuda bastante en el momento de grabar o leer información. Es complemento un aporte a lo que estamos aprendiendo Espero que les sea útil,

En mi caso el primer tipo de insersion me marco error ya que el “” no era un tipo de dato Integer para el author_id, solo me funciono la segunda. pero en la consulta si se ve agregados los id

Nota:
Se puede cambiar el orden de los campos en el insert pero consecuentemente se debe respetar ese mismo orden en la lista de VALUES.

INSERT INTO authors(nationality, name, author_id) VALUES ('USA', 'John Doe', 16);

Me paso que con las querys siguientes no me insertaron el la base de datos por error que el id_authors estaba vació por consiguiente les coloque su id y funciono correctamente como podría evitar eso con dichas querys?

INSERT INTO authors(author_id, name, nationality)
VALUES (‘2’,‘Juan Rulfo’, ‘MEX’);

INSERT INTO authors
VALUES(‘3’,‘Juan Gabriel Vasquez’, ‘COL’);

En mi caso, MaríaDB no me permite entrar con id ‘’

Si usan MariaDB, en lugar de poner:

INSERT INTO authors
       VALUES('', 'Juan Gabriel Vasquez', 'COL');

usen null para la columna de id que debería quedar vacía.

INSERT INTO authors
      VALUES(null, 'Juan Gabriel Vasquez', 'COL');

Para solucionar el error en el insert utilicé las siguientes líneas:

INSERT INTO authors(author_id, name, nationality)
VALUES (NULL, 'Juan Rulfo', 'MEX');

INSERT INTO authors(name, nationality)
VALUES ('Gabriel García Márquez', 'COL');

INSERT INTO authors 
VALUES (NULL, 'Juan Gabriel Vasquez', 'COL');

Fomas de realizar un insert:

INSERT INTO authors(author_id, name, nationality)
VALUES(NULL, 'Juan Rulfo', 'MEX');

INSERT INTO authors(name, nationality)
VALUES('Gabrile García Márquez', 'COL');

INSERT INTO authors VALUES('', 'Juan Gabriel Vasquez', 'COL');

INSERT INTO authors(name, nationality) VALUES
('Julio Cortázar','ARG'),
('Isabel Allende','CHI'),
('Octavio Paz','MEX'),
('Juan Carlos Onetti','URU');```

INSERT INTO

Este comando nos sirve para insertar varios valores a una tabla, asi:

INSERT INTO `authors` 
VALUES (1,'Sam Altman','USA'),
		   (2,'Freddy Vega','COL')
INSERT INTO authors(name, nationality)
    -> VALUES('Julio Cortázar', 'ARG'),
    -> ('Isabel Allende', 'CHI'),
    -> ('Octavio Paz', 'MEX'),
    -> ('Juan Carlos Onetti', 'URU')
    -> ;

INSERT INTO authors (name, nationality)
VALUES(‘Juan Rulfo’, ‘MEX’),
(‘Gabriel García Márquez’, ‘COL’),
(‘Juan Gabriel Vasquez’, ‘COL’),
(‘Julio Cortázar’, ‘ARG’),
(‘Isabel Allende’, ‘CHI’),
(‘Octavio Paz’, ‘MEX’),
(‘Juan Carlos Onetti’, ‘URU’);

– -- INSERT INTO tabla(COLUMNAS*) VALUES(VALORES)
– Tres formas distintas:

INSERT INTO authors(author_id, name, nationality)
VALUES(’’,‘Juan Rulfo’,‘MEX’); – podemos trabajarlo uno debaje de otro. Posiblemente nos de error por el AUTO INCREMENT ya que les estamos dando un valor vacío tipo STRING con las comillas ‘’. Mejor seguimos con el siguiente método. También podemos asignarle un número o NULL.

INSERT INTO authors (name, nationality) – Todo lo que vaya entre estas columans debe tener sus valores
VALUES(‘Gabo Márquez’,‘COL’);

INSERT INTO authors
VALUES (’’, ‘Mario Vargas Llosa’, ‘PER’); – Nuevamente me muestra un INCORRECT INTEGER VALUE

INSERT INTO authors
VALUES (’’,‘Mario Vargas Llosa’, ‘PER’); – Nuevamente me muestra un INCORRECT INTEGER VALUE

INSERT INTO authors (name, nationality) – Todo lo que vaya entre estas columans debe tener sus valores
VALUES(‘Julio Cortázar’,‘ARG’),
(‘Isabel Allende’,‘CHI’),
(‘Julio Ramón Ribeyro’,‘PER’),
(‘César Vallejo’,‘PER’),
(‘Octavio Paz’,‘MEX’);

Yo si me estaba preguntando si no daria error por mandr un str cuando en la tabla definimos la columna como un entero y mandamos comillas vacias y eso lo toma como str

Lo que habla al principio el profesor es acerca de normalización pueden leer mas aqui: https://platzi.com/blog/normalizar-una-base-de-datos-y-no-morir-en-el-intento/

-- Generar multiples inserts
INSERT INTO authors(name, nationality)
VALUES('Garcia Marquez', 'COL'),
('Andres Hernandez', 'CHI'),
('Robert Kiyosaki', 'USA');

Si alguien quiere una herramienta para trabajar con bases de datos, una que es bastante útil se llama DBeaver Community, se puede trabajar con múltiples sistemas gestores de bases de datos como mariadb (que es igual a mysql pero gratis), mysql, postgres, etc.

Hola! Tengo un pequeño problema… No consigo que al hacer Copy-Paste desde el editor de textos hacía la consola se pegue bien y me genera errores. He probado usando el Bloc de Notas de Windows y Visual Studio Code… ¿Alguna sugerencia?

Dejo el código con los ejemplos de la clase por si les he de ayuda

INSERT INTO  `authors` (author_id,name,nationality)
    VALUES (NULL,'Juan Rulfo','MEX');
INSERT INTO  `authors` (name,nationality)
    VALUES ('Gabriel García Máquez','COL');
INSERT INTO  `authors` 
     VALUES (NULL,'Juan Gabriel Vasquez','COL');

INSERT INTO  `authors` (name,nationality) 
    VALUES  
            ('Julio Cortázar','COL'),
            ('Isabelle Allende','CHI'),
            ('Octavio Paz','MEX'),
            ('Juan Carlos Onetti','URU');

Se puede usar el insert if not exists?

Es buena práctica realizar inserciones de 50 registros máximo. Esto no es necesariamente obligatorio pero funciona muy bien y esto se hace porque sí hay algún problema en la inserción sólo se pierde datos de 50 a 50.

No entiendo por que cuando quiero insertar un autor en la tabla sin especificar el author_id salta del 1 al 193, por que pasa esto ??

±----------±-----------------------±------------+
| author_id | name | nationality |
±----------±-----------------------±------------+
| 1 | Juan Rulfo | MEX |
| 193 | Gabriel García Márquez | COL |
±----------±-----------------------±------------+
2 rows in set (0.00 sec)

mysql> INSERT INTO authors
-> VALUES(null,‘Juan Gabriel Vasquez’, ‘COL’);
Query OK, 1 row affected (0.01 sec)

mysql> select * from authors;
±----------±-----------------------±------------+
| author_id | name | nationality |
±----------±-----------------------±------------+
| 1 | Juan Rulfo | MEX |
| 193 | Gabriel García Márquez | COL |
| 194 | Juan Gabriel Vasquez | COL |
±----------±-----------------------±------------+
3 rows in set (0.01 sec)

a quienes les salga el ERROR 1366 (HY000): Incorrect integer value: ‘’ for column ‘author_id’ at row 1 lo soluciones con la siguiente linea :
SET SQL_MODE = ‘’;

Dejo la consulta porque me los agrego empezando por cualqueir ID
mysql> select * from authors
-> ;
±----------±-----------------------±------------+
| author_id | name | nationality |
±----------±-----------------------±------------+
| 193 | Juan Rulfo | MEX |
| 194 | Gabriel Garcia Marquez | COL |
| 195 | Juan Gabriel Vasquez | COL |
±----------±-----------------------±------------+
3 rows in set (0.00 sec)

Saben porque?

Estas clases están siendo muy prácticas y claras.

increible clase

Me gusa las Clases… Felicitaciones

Diferentes formas de insertar datos en una tabla

INSERT INTO authors (author_id, name, nationality) 
VALUES ('', 'Juan Rulfo', 'MEX');

INSERT INTO authors (name, nationality) 
VALUES ('Gabriel García Marquez', 'COL');

INSERT INTO authors
VALUES ('', 'Juan Gabriel Vazquez', 'COL');

INSERT INTO authors (name, nationality)
VALUES ('Julio Cortázar', 'AR'), 
('Isabel Allende', 'CHI'), 
('Octavio Paz', 'MEX');

INSERT INTO authors VALUES (DEFAULT, 'Juan Carlos Onetti', 'URU');

INSERT INTO authors (author_id, name) VALUES (DEFAULT, 'Pablo Neruda');

INSERT INTO authors (author_id, name) VALUES (15, 'Fernando Savater');

buenas clases

Buen tip!

excelente curso

excelente curso.

Alberto me a parecido un excelente maestro.

Para hacer un mejor uso de las tablas creadas anteriores para la tabla de operations sería mejor colocarle un FOREIGN KEY para id_book

El curso está buenísimo. Dejo mi pedazo de like👍🏻.

insert into authors(name,nationality) 
values
('Alfredo Antonio','COL'),
('Juna Agustin del Orbe','MEX'),
('Raul Garcia Marquez','RPD'),
('Gabriel de la Cruz','ALE'),
('Hermes Hernandez Hiciano','CHI'),
('Asley Vazquez','ING'),
('Pablo Neruda','ECU')
;```

HOLA CHICOS!
A MI NO ME FUNCIONABA EL SIGUIENTE CÓDIGO
INSERT INTO AUTHORS
VALUES(’ ',‘GABRIEL GARCÍA MARQUEZ’,‘COLOMBIANO’);
PERO AQUÍ ESTÁ LA SOLUCIÓN QUE ME FUNCIONÓ!

INSERT INTO AUTHORS
VALUES(default,‘GABRIEL GARCÍA MARQUEZ’,‘COLOMBIANO’);

POR SI ALGUIEN TIENE EL MISMO ERROR

No me deja insertar de la primera y tercera forma, me pide que le ponga un valor a author_id

Al realizar el siguiente comando arroja el siguiente error;
mysql> insert into authors values(‘Juan Gabriel Vasquez’,‘COL’);
ERROR 1136 (21S01): Column count doesn’t match value count at row 1.

Se soluciona de la siguiente forma, y el auto incremento funciona si inconvenientes:
mysql> insert into authors values(0,‘Juan Gabriel Vasquez’,‘COL’);
Query OK, 1 row affected (0.01 sec)

Hola chicos les comparto un codigo más corto para actualizar

    UPDATE CLIENTS
    SET ACTIVE = 0
    WHERE CLIENTS.ID_CLIENT = 3```
La forma en que soluci9ne el error de insertar un valor con ' lo sustituir por NULL:

buena clase!

Solo conocia el primer tipo de insert.

Stay hungry, Stay foolish, grande Steve Jobs

Vídeo para que comprendan, para quien no sepa 😃

Bien.

como se limpia pantalla?

Excelente.

en la tabla operations, por que no se usa foreign keys?

realizando Insert de una sola fila

INSERT INTO authors(author_id, name, nationality)
VALUES('','Juan Rulfo','MEX');

INSERT INTO authors(name, nationality)
VALUES('Gabriel García Márquez','COL');

INSERT INTO authors
VALUES('','Juan Gabriel Vasquez','COL');

Realizando Insert de varias filas

INSERT INTO authors(name, nationality ) 
VALUES 
('Julios Cortázar', 'ARG'), 
('Isabel Allende', 'CHI'), 
('Octavio Paz', 'MEX'),
('Juan Carlos Onetti', 'URU');```
 

realizando Insert de una sola fila

INSERT INTO authors(author_id, name, nationality)
VALUES('','Juan Rulfo','MEX');

INSERT INTO authors(name, nationality)
VALUES('Gabriel García Márquez','COL');

INSERT INTO authors
VALUES('','Juan Gabriel Vasquez','COL');

Realizando Insert de varias filas

INSERT INTO authors(name, nationality ) 
VALUES 
('Julios Cortázar', 'ARG'), 
('Isabel Allende', 'CHI'), 
('Octavio Paz', 'MEX'),
('Juan Carlos Onetti', 'URU');```
 

INSERT INTO authors(author_id, name, nationality)
VALUES(’’, ‘Juan Rulfo’, ‘MEX’);

INSERT INTO authors(name, nationality)
VALUES(‘Julio Cortázar’, ‘ARG’),
(‘Isabel Allende’, ‘CHI’),
(‘Octavio Paz’, ‘MEX’),
(‘Juan Carlos Onetti’, ‘URU’);

Entendido el comando Insert Into

CREATE TABLE IF NOT EXISTS operations(
operation_id INTEGER UNSIGNED PRIMARY KEY AUTO_INCREMENT,
book_id INTEGER UNSIGNED,
client_id INTEGER UNSIGNED,
type ENUM (‘V’, ‘P’, ‘D’),
active TINYINT(1) NOT NULL DEFAULT 1,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON
UPDATE CURRENT_TIMESTAMP,
finished TINYINT(1) NOT NULL
);

Y el tercer insert puede quedar así:

<INSERT INTO authors VALUES(NULL, 'Juan Gabriel Vazquez', 'COL');>

Esto debido a que el campo author_id es NOT NULL

Me paso que en base a mi tabla las sintaxis de

INSERT INTO authors (author_id, name, nationality)
VALUES('','Juan Rulfo','MEX');

INSERT INTO authors
VALUES('', ' Juan Gabriel Velazqez', 'COL');

Me marcaba el siguiente error:
ERROR 1366 (HY000): Incorrect integer value: ‘’ for column ‘author_id’ at row 1
Esto es por que en la tabla existe la condición de NOT NULL, por lo que es importante ponerle un 0 al valor y automaticamente este la cambiara al que es.

mysql> INSERT INTO authors
    -> VALUES('', ' Juan Gabriel Velazqez', 'COL');
ERROR 1366 (HY000): Incorrect integer value: '' for column 'author_id' at row 1
mysql> INSERT INTO authors (author_id, name, nationality)
    -> VALUES('0','Juan Rulfo','MEX');
Query OK, 1 row affected (0.01 sec)

Solo me funcionó el INSERT into de en medio con la versión de beco jejeje

CREATE TABLE IF NOT EXISTS operations(
operation_id INTEGER PRIMARY KEY AUTO_INCREMENT,
book INTEGER UNSIGNED,
client_id INTEGER UNSIGNED,
type ENUM(‘1’, ‘0’) NOT NULL,
create_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
finished TINYINT(1) NOT NULL,
FOREIGN KEY(book) REFERENCES books(book),
FOREIGN KEY(client_id) REFERENCES clients(client_id)
);

Desde Linux Mint (Derivado de Ubuntu) al ejecutar en consola

INSERT INTO authors VALUES ('', 'Juan Gabriel Vasquez', 'COL');

Genera un error Incorrect integer value: ‘’ for column ‘author_id’ at row 1 por la cadena vacia del identificador de author, para solucionarlo se puede escribir el script de la forma

INSERT INTO authors(author_id, name, nationality ) VALUES (NULL, 'Juan Rulfo', 'MEX');

Reemplazando la cadena vacia por un valor NULL

realizando el INSERT siguiendo el video me daba un error con lo siguiente:

INSERT INTO authors(author_id, author_name, author_nationality)
VALUES ('','Juan Rulfo','MEX');```
_______________________________
ERROR 1366 (HY000): Incorrect integer value: '' for column 'author_id' at row 1

Mi hipotesis es que en VALUES no me permite dejar ese campo en blanco ya que es NOT NULL, ya que al ingresar el munero 1, se ejecuto exitosamente.
?

Para cargar los datos, se podría también realizar un LOAD DATA INFILE.

Excelntes clases /o/

NO alcance a ver que versión de mysql esta usando beco.

Es buena práctica:Tener una buen modelo de bases de datos y un buen modelo de negocio que evite la duplicidad de información ya que esto nos ahorra el tiempo de procesamiento, ahorra en espacio.

Mi sentencia de INSERT fue:

INSERT INTO  authors VALUES (null, 'Juan Gabriel', 'COL');

INSERT INTO `name_table` (column_1,column_2,column_3) VALUES ( valor_1,valor_2,valor_3);

INSERT INTO `authors` (name,nationality) VALUES ('Juan Rulfo','MEX'), ('Gabriel García Máquez','COL'), ('Juan Gabriel Vasquez','COL'), ('Julio Cortázar','COL');

Es buena práctica realizar inserciones de 50 registros máximo. Esto no es necesariamente obligatorio pero funciona muy bien y esto se hace porque sí hay algún problema en la inserción sólo se pierde datos de 50 a 50.

Aquí algo mas avanzado:

Insert into desde un archivo delimitado por pipes ( | ) a una tabla (puede ser tabla física o temporal):

USE PD;
GO
IF OBJECT_ID(‘TEMPDB…##TMP_AFILDB_AFM16_20191102’)
IS NOT NULL
BEGIN
DROP TABLE ##TMP_AFILDB_AFM16_20191102;
END;
CREATE TABLE ##TMP_AFILDB_AFM16_20191102
([CDATTAB] DECIMAL NULL,
[CINDVAR] VARCHAR COLLATE DATABASE_DEFAULT
NULL,
[CMNT] VARCHAR COLLATE DATABASE_DEFAULT
NULL,
[CODEPS] DECIMAL NULL,
[CUSUNEW] DECIMAL NULL,
[FPRO] DECIMAL NULL,
[FULTNOV] DECIMAL NULL,
[NVALOR] DECIMAL NULL,
[TDATO] VARCHAR COLLATE DATABASE_DEFAULT
NULL,
[XDATTAB] VARCHAR COLLATE DATABASE_DEFAULT
NULL,
[XDES] VARCHAR COLLATE DATABASE_DEFAULT
NULL
);
BULK INSERT ##TMP_AFILDB_AFM16_20191102 FROM
’E:\INTERSOFT\QUERYS\CLONACION\Archivos_Planos\AFM16_20191102.txt’
WITH(FIELDTERMINATOR = ‘|’,ROWTERMINATOR = ‘\n’);

como se borra pantalla en la consola utilizando windows?
gracias…