Cómo hacer un insert if not exists en LibreOffice Base

Buenas noches, espero que puedan ayudarme a realizar una consulta de SQL en Base.

Tengo una tabla llamada “Estudiante” que tiene tres atributos:

idEstudiante: Llave primaria autoincremental.

registro: VARCHAR(10) UNIQUE

nombre: VARCHAR(50)

La idea es tener una tabla con todos los estudiantes de varios cursos, evitando que se inserten estudiantes duplicados, ya que un estudiante puede estar matriculado en varios cursos.

Quiero hacer algo como lo siguiente:

INSERT IGNORE INTO “Estudiante” SELECT (null,‘uni-2018-00001’,‘nombreEstudiante1’)

INSERT IGNORE INTO “Estudiante” SELECT (null,‘uni-2018-00002’,‘nombreEstudiante2’)

INSERT IGNORE INTO “Estudiante” SELECT (null,‘uni-2018-00001’,‘nombreEstudiante1’) ← Aquí se trata de el mismo estudiante, lo que genera un problema ya que el atributo registro es único.

He probado con insert ignore into, if not exists y todo lo que conozco de sql y nada me funciona :frowning:

Espero su colaboración. Muchas gracias de antemano

Sé que es un tanto primitio, pero eficaz: primero le preguntas si lo tiene, y en su defecto continúas, si no, te echa de la macro:

oCon = ThisDatabaseDocument.CurrentController.ActiveConnection
oStat = oCon.CreateStatement
oSQLQuery="SELECT "“idEstudiante “”,”"registro “”, ““nombre”” FROM ""Estudiante “” ""Estudiante ""Where ““idEstudiante””= 'nombreEstudiante1 "
oStat.setPropertyValue(“ResultSetType”,1005)
oResultSet = oStat.executeQuery(oSQLQuery)
Value=oResultSet.next

If Value=True Then Exit sub

Else
‘Aplicar el SQL de inserción

End if