Implements database, adds profiles

This commit is contained in:
2025-10-01 22:23:00 +02:00
parent b2571c191f
commit d2da811868
86 changed files with 17323 additions and 483 deletions

View File

@@ -0,0 +1,91 @@
package ch.gtache.fro.database;
import ch.gtache.fro.BirdFamily;
import ch.gtache.fro.BirdFamilyProvider;
import ch.gtache.fro.ProvisionException;
import ch.gtache.fro.impl.BirdFamilyImpl;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
import static java.util.Objects.requireNonNull;
/**
* {@link BirdFamilyProvider} using a database
*/
@Singleton
public class DatabaseBirdFamilyProvider implements BirdFamilyProvider {
private static final String BASE_REQUEST = "SELECT f.name, ft.translation FROM family f JOIN family_translation ft ON f.id=ft.family_id JOIN language l ON ft.language_id=l.id WHERE l.name='FR'";
private final Connection connection;
private final Map<String, BirdFamily> cache;
private final AtomicBoolean retrievedAll;
@Inject
DatabaseBirdFamilyProvider(final Connection connection) {
this.connection = requireNonNull(connection);
this.cache = new ConcurrentHashMap<>();
this.retrievedAll = new AtomicBoolean(false);
}
@Override
public BirdFamily getObject(final String name) throws ProvisionException {
if (cache.containsKey(name)) {
return cache.get(name);
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST + " AND f.name=?")) {
stmt.setString(1, name);
try (final var rs = stmt.executeQuery()) {
if (rs.next()) {
final var family = parse(rs);
cache.put(name, family);
return family;
} else {
return null;
}
}
} catch (final SQLException e) {
throw new ProvisionException("Error while getting object " + name, e);
}
}
}
@Override
public Collection<BirdFamily> getAllObjects() throws ProvisionException {
if (retrievedAll.get()) {
return cache.values();
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST);
final var rs = stmt.executeQuery()) {
final var ret = new ArrayList<BirdFamily>();
while (rs.next()) {
ret.add(parse(rs));
}
cache.putAll(ret.stream().collect(Collectors.toMap(BirdFamily::name, Function.identity())));
retrievedAll.set(true);
return ret;
} catch (final SQLException e) {
throw new ProvisionException("Error while getting all objects", e);
}
}
}
private static BirdFamily parse(final ResultSet rs) throws SQLException {
final var name = rs.getString(1);
final var translation = rs.getString(2);
return new BirdFamilyImpl(name, Map.of(Locale.FRENCH, translation));
}
}

View File

@@ -0,0 +1,103 @@
package ch.gtache.fro.database;
import ch.gtache.fro.Bird;
import ch.gtache.fro.BirdFamilyProvider;
import ch.gtache.fro.BirdProvider;
import ch.gtache.fro.MigrationTypeProvider;
import ch.gtache.fro.ProvisionException;
import ch.gtache.fro.impl.BirdImpl;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
import static java.util.Objects.requireNonNull;
/**
* {@link BirdProvider} using a database
*/
@Singleton
public class DatabaseBirdProvider implements BirdProvider {
private static final String BASE_REQUEST = "SELECT b.name, f.name, m.name, bt.translation FROM bird b JOIN family f ON b.family_id=f.id JOIN migration_type m ON b.migration_type_id=m.id JOIN bird_translation bt ON b.id=bt.bird_id JOIN language l ON bt.language_id=l.id WHERE l.name='FR'";
private final Connection connection;
private final BirdFamilyProvider birdFamilyProvider;
private final MigrationTypeProvider migrationTypeProvider;
private final Map<String, Bird> cache;
private final AtomicBoolean retrievedAll;
@Inject
DatabaseBirdProvider(final Connection connection,
final BirdFamilyProvider birdFamilyProvider,
final MigrationTypeProvider migrationTypeProvider) {
this.connection = requireNonNull(connection);
this.birdFamilyProvider = requireNonNull(birdFamilyProvider);
this.migrationTypeProvider = requireNonNull(migrationTypeProvider);
this.cache = new ConcurrentHashMap<>();
this.retrievedAll = new AtomicBoolean(false);
}
@Override
public Bird getObject(final String name) throws ProvisionException {
if (cache.containsKey(name)) {
return cache.get(name);
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST + " AND b.name=?")) {
stmt.setString(1, name);
try (final var rs = stmt.executeQuery()) {
if (rs.next()) {
final var bird = parse(rs);
cache.put(name, bird);
return bird;
} else {
return null;
}
}
} catch (final SQLException e) {
throw new ProvisionException("Error while getting object " + name, e);
}
}
}
@Override
public Collection<Bird> getAllObjects() throws ProvisionException {
if (retrievedAll.get()) {
return cache.values();
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST);
final var rs = stmt.executeQuery()) {
final var ret = new ArrayList<Bird>();
while (rs.next()) {
ret.add(parse(rs));
}
cache.putAll(ret.stream().collect(Collectors.toMap(Bird::name, Function.identity())));
retrievedAll.set(true);
return ret;
} catch (final SQLException e) {
throw new ProvisionException("Error while getting all objects", e);
}
}
}
private Bird parse(final ResultSet rs) throws SQLException, ProvisionException {
final var name = rs.getString(1);
final var familyName = rs.getString(2);
final var migrationTypeName = rs.getString(3);
final var translation = rs.getString(4);
final var family = birdFamilyProvider.getObject(familyName);
final var migrationType = migrationTypeProvider.getObject(migrationTypeName);
return new BirdImpl(name, family, migrationType, Map.of(Locale.FRENCH, translation));
}
}

View File

@@ -0,0 +1,58 @@
package ch.gtache.fro.database;
import ch.gtache.fro.Initializer;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Objects;
/**
* {@link Initializer} for the database
*/
@Singleton
public class DatabaseInitializer implements Initializer {
private final Connection connection;
@Inject
DatabaseInitializer(final Connection connection) {
this.connection = Objects.requireNonNull(connection);
}
@Override
public void initialize() {
try {
if (!isInitialized()) {
final var files = List.of("init.sql", "init-data.sql", "init-translations.sql", "init-fro1.sql");
final var runner = new ScriptRunner(connection);
for (final var file : files) {
try (final var reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream(file), StandardCharsets.UTF_8))) {
runner.runScript(reader);
}
}
}
} catch (final IOException | SQLException e) {
throw new RuntimeException("Error running initialization scripts", e);
}
}
private boolean isInitialized() throws SQLException {
try (final var stmt = connection.prepareStatement("SELECT 1 FROM profile WHERE name='FRO1'");
final var rs = stmt.executeQuery()) {
return rs.next();
} catch (final SQLException e) {
if (e.getMessage().contains("not found")) {
return false;
} else {
throw e;
}
}
}
}

View File

@@ -0,0 +1,91 @@
package ch.gtache.fro.database;
import ch.gtache.fro.MigrationType;
import ch.gtache.fro.MigrationTypeProvider;
import ch.gtache.fro.ProvisionException;
import ch.gtache.fro.impl.MigrationTypeImpl;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
import static java.util.Objects.requireNonNull;
/**
* {@link MigrationTypeProvider} using a database
*/
@Singleton
public class DatabaseMigrationTypeProvider implements MigrationTypeProvider {
private static final String BASE_REQUEST = "SELECT mt.name, mtt.translation FROM migration_type mt JOIN migration_type_translation mtt ON mt.id=mtt.migration_type_id JOIN language l ON mtt.language_id=l.id WHERE l.name='FR'";
private final Connection connection;
private final Map<String, MigrationType> cache;
private final AtomicBoolean retrievedAll;
@Inject
DatabaseMigrationTypeProvider(final Connection connection) {
this.connection = requireNonNull(connection);
this.cache = new ConcurrentHashMap<>();
this.retrievedAll = new AtomicBoolean(false);
}
@Override
public MigrationType getObject(final String name) throws ProvisionException {
if (cache.containsKey(name)) {
return cache.get(name);
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST + " AND mt.name=?")) {
stmt.setString(1, name);
try (final var rs = stmt.executeQuery()) {
if (rs.next()) {
final var type = parse(rs);
cache.put(name, type);
return type;
} else {
return null;
}
}
} catch (final SQLException e) {
throw new ProvisionException("Error while getting object " + name, e);
}
}
}
@Override
public Collection<MigrationType> getAllObjects() throws ProvisionException {
if (retrievedAll.get()) {
return cache.values();
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST);
final var rs = stmt.executeQuery()) {
final var ret = new ArrayList<MigrationType>();
while (rs.next()) {
ret.add(parse(rs));
}
cache.putAll(ret.stream().collect(Collectors.toMap(MigrationType::name, Function.identity())));
retrievedAll.set(true);
return ret;
} catch (final SQLException e) {
throw new ProvisionException("Error while getting all objects", e);
}
}
}
private static MigrationType parse(final ResultSet rs) throws SQLException {
final var name = rs.getString(1);
final var translation = rs.getString(2);
return new MigrationTypeImpl(name, Map.of(Locale.FRENCH, translation));
}
}

View File

@@ -0,0 +1,71 @@
package ch.gtache.fro.database;
/*
* Slightly modified version of the com.ibatis.common.jdbc.ScriptRunner class
* from the iBATIS Apache project. Only removed dependency on Resource class
* and a constructor
*/
/*
* Copyright 2004 Clinton Begin
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.Reader;
import java.sql.Connection;
import java.sql.SQLException;
/**
* Tool to run database scripts
*/
public class ScriptRunner {
private static final String DELIMITER = ";";
private final Connection connection;
/**
* Default constructor
*/
public ScriptRunner(final Connection connection) {
this.connection = connection;
}
/**
* Runs an SQL script (read in using the Reader parameter)
*
* @param reader - the source of the script
*/
public void runScript(final Reader reader) throws IOException, SQLException {
final var lineReader = new LineNumberReader(reader);
String line;
final var command = new StringBuilder();
while ((line = lineReader.readLine()) != null) {
final var trimmedLine = line.trim();
if (!trimmedLine.startsWith("--") && !trimmedLine.isEmpty() && !trimmedLine.startsWith("//")) {
if (trimmedLine.endsWith(DELIMITER)) {
command.append(line, 0, line.lastIndexOf(DELIMITER));
command.append(" ");
try (final var statement = connection.createStatement()) {
statement.execute(command.toString());
}
command.setLength(0);
} else {
command.append(line);
command.append(" ");
}
}
}
}
}

View File

@@ -0,0 +1,38 @@
package ch.gtache.fro.modules.database;
import ch.gtache.fro.BirdFamilyProvider;
import ch.gtache.fro.BirdProvider;
import ch.gtache.fro.Initializer;
import ch.gtache.fro.MigrationTypeProvider;
import ch.gtache.fro.database.DatabaseBirdFamilyProvider;
import ch.gtache.fro.database.DatabaseBirdProvider;
import ch.gtache.fro.database.DatabaseInitializer;
import ch.gtache.fro.database.DatabaseMigrationTypeProvider;
import ch.gtache.fro.modules.practice.database.DatabasePracticeModule;
import dagger.Binds;
import dagger.Module;
import dagger.multibindings.IntoSet;
/**
* Dagger module for database
*/
@Module(includes = DatabasePracticeModule.class)
public abstract class DatabaseModule {
private DatabaseModule() {
}
@Binds
abstract BirdProvider bindsBirdProvider(DatabaseBirdProvider databaseBirdProvider);
@Binds
abstract BirdFamilyProvider bindsBirdFamilyProvider(DatabaseBirdFamilyProvider databaseBirdFamilyProvider);
@Binds
abstract MigrationTypeProvider bindsMigrationTypeProvider(DatabaseMigrationTypeProvider databaseMigrationTypeProvider);
@Binds
@IntoSet
abstract Initializer bindsInitializer(DatabaseInitializer databaseInitializer);
}

View File

@@ -0,0 +1,25 @@
package ch.gtache.fro.modules.practice.database;
import ch.gtache.fro.practice.GroupedBirdPracticeParametersManager;
import ch.gtache.fro.practice.PracticeProfileProvider;
import ch.gtache.fro.practice.database.DatabaseGroupedBirdPracticeParametersManager;
import ch.gtache.fro.practice.database.DatabasePracticeProfileProvider;
import dagger.Binds;
import dagger.Module;
/**
* Dagger module for database practice
*/
@Module
public abstract class DatabasePracticeModule {
private DatabasePracticeModule() {
}
@Binds
abstract GroupedBirdPracticeParametersManager bindsGroupedBirdPracticeParametersManager(DatabaseGroupedBirdPracticeParametersManager databaseGroupedBirdPracticeParametersManager);
@Binds
abstract PracticeProfileProvider bindsPracticeProfileProvider(DatabasePracticeProfileProvider databasePracticeProfileProvider);
}

View File

@@ -0,0 +1,135 @@
package ch.gtache.fro.practice.database;
import ch.gtache.fro.BirdProvider;
import ch.gtache.fro.PictureType;
import ch.gtache.fro.ProvisionException;
import ch.gtache.fro.SoundType;
import ch.gtache.fro.impl.GroupedBirdPracticeParametersImpl;
import ch.gtache.fro.practice.BirdPracticeParameters;
import ch.gtache.fro.practice.GroupedBirdPracticeParameters;
import ch.gtache.fro.practice.GroupedBirdPracticeParametersManager;
import ch.gtache.fro.practice.PracticeProfile;
import ch.gtache.fro.practice.PracticeProfileProvider;
import ch.gtache.fro.practice.impl.BirdPracticeParametersImpl;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import static java.util.Objects.requireNonNull;
/**
* {@link GroupedBirdPracticeParametersManager} using a database
*/
@Singleton
public class DatabaseGroupedBirdPracticeParametersManager implements GroupedBirdPracticeParametersManager {
private static final String BASE_REQUEST = "SELECT p.name, b.name, bp.enabled, " +
"array(SELECT pt.name FROM picture_type pt JOIN bird_parameters_picture_type bppt ON pt.id=bppt.picture_type_id WHERE bppt.bird_parameters_id=bp.id), " +
"array(SELECT st.name FROM sound_type st JOIN bird_parameters_sound_type bpst ON st.id=bpst.sound_type_id WHERE bpst.bird_parameters_id=bp.id), " +
"array(SELECT f.name FROM fetcher f JOIN bird_parameters_fetcher bpf ON f.id=bpf.fetcher_id WHERE bpf.bird_parameters_id=bp.id) FROM profile p JOIN bird_parameters bp ON p.id=bp.profile_id JOIN bird b ON bp.bird_id=b.id";
private final Connection connection;
private final BirdProvider birdProvider;
private final PracticeProfileProvider profileProvider;
private final Map<PracticeProfile, GroupedBirdPracticeParameters> cache;
private final AtomicBoolean retrievedAll;
@Inject
DatabaseGroupedBirdPracticeParametersManager(final Connection connection,
final BirdProvider birdProvider,
final PracticeProfileProvider profileProvider) {
this.connection = requireNonNull(connection);
this.birdProvider = requireNonNull(birdProvider);
this.profileProvider = requireNonNull(profileProvider);
this.cache = new ConcurrentHashMap<>();
this.retrievedAll = new AtomicBoolean(false);
}
@Override
public GroupedBirdPracticeParameters getObject(final PracticeProfile profile) throws ProvisionException {
if (cache.containsKey(profile)) {
return cache.get(profile);
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST + " WHERE p.name=?")) {
stmt.setString(1, profile.name());
try (final var rs = stmt.executeQuery()) {
final var parameters = new ArrayList<BirdPracticeParameters>();
while (rs.next()) {
parameters.add(parse(rs).parameters());
}
final var groupedParameters = new GroupedBirdPracticeParametersImpl(profile, parameters);
cache.put(profile, groupedParameters);
return groupedParameters;
}
} catch (final SQLException e) {
throw new ProvisionException("Error while getting object " + profile, e);
}
}
}
@Override
public Collection<GroupedBirdPracticeParameters> getAllObjects() throws ProvisionException {
if (retrievedAll.get()) {
return cache.values();
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST);
final var rs = stmt.executeQuery()) {
final var parameters = new ArrayList<ParametersPair>();
while (rs.next()) {
parameters.add(parse(rs));
}
final var map = new HashMap<String, Set<BirdPracticeParameters>>();
for (final var parameter : parameters) {
map.computeIfAbsent(parameter.profileName(), k -> new HashSet<>()).add(parameter.parameters());
}
final var ret = new ArrayList<GroupedBirdPracticeParameters>(map.size());
for (final var entry : map.entrySet()) {
final var profile = profileProvider.getObject(entry.getKey());
final var groupedParameters = new GroupedBirdPracticeParametersImpl(profile, entry.getValue());
cache.put(profile, groupedParameters);
ret.add(groupedParameters);
}
retrievedAll.set(true);
return ret;
} catch (final SQLException e) {
throw new ProvisionException("Error while getting all objects", e);
}
}
}
@Override
public void save(final GroupedBirdPracticeParameters configuration, final PracticeProfile profile) {
throw new UnsupportedOperationException("Not implemented");
}
private ParametersPair parse(final ResultSet rs) throws SQLException, ProvisionException {
final var profileName = rs.getString(1);
final var birdName = rs.getString(2);
final var enabled = rs.getBoolean(3);
final var pictureTypesArray = rs.getArray(4);
final var pictureTypes = Arrays.stream((Object[]) pictureTypesArray.getArray()).map(o -> PictureType.valueOf((String) o)).toList();
final var soundTypesArray = rs.getArray(5);
final var soundTypes = Arrays.stream((Object[]) soundTypesArray.getArray()).map(o -> SoundType.valueOf((String) o)).toList();
final var fetchersArray = rs.getArray(6);
final var fetchers = Arrays.stream((Object[]) fetchersArray.getArray()).map(String.class::cast).toList();
final var bird = birdProvider.getObject(birdName);
return new ParametersPair(new BirdPracticeParametersImpl(bird, enabled, Set.copyOf(fetchers), Set.copyOf(pictureTypes), Set.copyOf(soundTypes)), profileName);
}
private record ParametersPair(BirdPracticeParameters parameters, String profileName) {
}
}

View File

@@ -0,0 +1,89 @@
package ch.gtache.fro.practice.database;
import ch.gtache.fro.ProvisionException;
import ch.gtache.fro.practice.PracticeProfile;
import ch.gtache.fro.practice.PracticeProfileProvider;
import ch.gtache.fro.practice.impl.PracticeProfileImpl;
import jakarta.inject.Inject;
import jakarta.inject.Singleton;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
import java.util.stream.Collectors;
import static java.util.Objects.requireNonNull;
/**
* {@link PracticeProfileProvider} using a database
*/
@Singleton
public class DatabasePracticeProfileProvider implements PracticeProfileProvider {
private static final String BASE_REQUEST = "SELECT p.name FROM profile p";
private final Connection connection;
private final Map<String, PracticeProfile> cache;
private final AtomicBoolean retrievedAll;
@Inject
DatabasePracticeProfileProvider(final Connection connection) {
this.connection = requireNonNull(connection);
this.cache = new ConcurrentHashMap<>();
this.retrievedAll = new AtomicBoolean(false);
}
@Override
public PracticeProfile getObject(final String name) throws ProvisionException {
if (cache.containsKey(name)) {
return cache.get(name);
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST + " WHERE p.name=?")) {
stmt.setString(1, name);
try (final var rs = stmt.executeQuery()) {
if (rs.next()) {
final var profile = parse(rs);
cache.put(name, profile);
return profile;
} else {
return null;
}
}
} catch (final SQLException e) {
throw new ProvisionException("Error while getting object " + name, e);
}
}
}
@Override
public Collection<PracticeProfile> getAllObjects() throws ProvisionException {
if (retrievedAll.get()) {
return cache.values();
} else {
try (final var stmt = connection.prepareStatement(BASE_REQUEST);
final var rs = stmt.executeQuery()) {
final var ret = new ArrayList<PracticeProfile>();
while (rs.next()) {
ret.add(parse(rs));
}
cache.putAll(ret.stream().collect(Collectors.toMap(PracticeProfile::name, Function.identity())));
retrievedAll.set(true);
return ret;
} catch (final SQLException e) {
throw new ProvisionException("Error while getting all objects", e);
}
}
}
private static PracticeProfile parse(final ResultSet rs) throws SQLException {
final var name = rs.getString(1);
return new PracticeProfileImpl(name);
}
}

View File

@@ -0,0 +1,14 @@
/**
* Database module for the FRO application
*/
module ch.gtache.fro.database {
requires transitive ch.gtache.fro.core;
requires transitive jakarta.inject;
requires transitive java.sql;
requires ch.gtache.fro.api;
exports ch.gtache.fro.database;
exports ch.gtache.fro.practice.database;
exports ch.gtache.fro.modules.database;
exports ch.gtache.fro.modules.practice.database;
}

View File

@@ -0,0 +1,957 @@
INSERT INTO family(name)
VALUES ('ANATIDES'),
('PHASIANIDES'),
('PODICIPEDIDES'),
('CICONIIDES'),
('ARDEIDES'),
('PHALACROCORACIDES'),
('ACCIPITRIDES'),
('RALLIDES'),
('CHARADRIIDES'),
('SCOLOPACIDES'),
('LARIDES'),
('COLUMBIDES'),
('CUCULIDES'),
('TYTONIDES'),
('STRIGIDES'),
('CAPRIMULGIDES'),
('APODIDES'),
('ALCEDINIDES'),
('MEROPIDES'),
('UPUPIDES'),
('PICIDES'),
('FALCONIDES'),
('LANIIDES'),
('ORIOLIDES'),
('CORVIDES'),
('PARIDES'),
('PANURIDES'),
('ALAUDIDES'),
('HIRUNDINIDES'),
('AEGITHALIDES'),
('PHYLLOSCOPIDES'),
('ACROCEPHALIDES'),
('LOCUSTELLIDES'),
('SYLVIDES'),
('REGULIDES'),
('TROGLODYTIDES'),
('SITTIDES'),
('TICHODROMIDES'),
('CERTHIIDES'),
('STURNIDES'),
('TURDIDES'),
('MUSCICAPIDES'),
('CINCLIDES'),
('PASSERIDES'),
('PRUNELLIDES'),
('MOTACILLIDES'),
('FRINGILLIDES'),
('EMBERIZIDES'),
('UNKNOWN');
INSERT INTO migration_type(name)
VALUES ('MIGRATION_COURTE_PARTIELLE'),
('MIGRATION_LONGUE_PARTIELLE'),
('MIGRATION_COURTE'),
('MIGRATION_LONGUE'),
('SEDENTAIRE'),
('UNKNOWN');
INSERT INTO bird (family_id, migration_type_id, name)
VALUES ((SELECT id FROM family WHERE name = 'PRUNELLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ACCENTEUR_ALPIN'),
((SELECT id FROM family WHERE name = 'PRUNELLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ACCENTEUR_MOUCHET'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AGROBATE_ROUX'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AIGLE_BOTTE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AIGLE_CRIARD'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AIGLE_POMARIN'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AIGLE_ROYAL'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AIGRETTE_GARZETTE'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_CALANDRE'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_CALANDRELLE'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_DES_CHAMPS'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_HAUSSECOL'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_LEUCOPTERE'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_LULU'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_MONTICOLE'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ALOUETTE_PISPOLETTE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AUTOUR_DES_PALOMBES'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'AVOCETTE_ELEGANTE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BALBUZARD_PECHEUR'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BARGE_A_QUEUE_NOIRE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BARGE_ROUSSE'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BEC_CROISE_DES_SAPINS'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSE_DES_BOIS'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_COCORLI'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_DE_BONAPARTE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_DE_TEMMINCK'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_FALCINELLE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_MAUBECHE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_MINUTE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_ROUSSET'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_SANDERLING'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_TACHETE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_VARIABLE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSEAU_VIOLET'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSINE_DES_MARAIS'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSINE_DOUBLE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BECASSINE_SOURDE'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERGERONNETTE_CITRINE'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERGERONNETTE_DES_RUISSEAUX'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERGERONNETTE_GRISE'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERGERONNETTE_PRINTANIERE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERNACHE_A_COU_ROUX'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERNACHE_CRAVANT'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERNACHE_DU_CANADA'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BERNACHE_NONNETTE'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BIHOREAU_GRIS'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BLONGIOS_NAIN'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BONDREE_APIVORE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BOUSCARLE_DE_CETTI'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BOUVREUIL_PIVOINE'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_A_CALOTTE_BLANCHE'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_CHANTEUR'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_DES_NEIGES'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_DES_ROSEAUX'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_FOU'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_JAUNE'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_LAPON'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_MELANOCEPHALE'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_NAIN'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_ORTOLAN'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_PROYER'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_RUSTIQUE'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BRUANT_ZIZI'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUSARD_CENDRE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUSARD_DES_ROSEAUX'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUSARD_PALE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUSARD_SAINT_MARTIN'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUSE_FEROCE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUSE_PATTUE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUSE_VARIABLE'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'BUTOR_ETOILE'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CAILLE_DES_BLES'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CANARD_CAROLIN'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CANARD_CHIPEAU'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CANARD_COLVERT'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CANARD_MANDARIN'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CANARD_PILET'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CANARD_SIFFLEUR'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CANARD_SOUCHET'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CASSENOIX_MOUCHETE'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHARDONNERET_ELEGANT'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_ABOYEUR'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_ARLEQUIN'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_BARGETTE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_CULBLANC'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_GAMBETTE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_GRIVELE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_GUIGNETTE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_STAGNATILE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVALIER_SYLVAIN'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVECHE_D_ATHENA'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHEVECHETTE_D_EUROPE'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHOCARD_A_BEC_JAUNE'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHOUCAS_DES_TOURS'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHOUETTE_DE_TENGMALM'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHOUETTE_EPERVIERE'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CHOUETTE_HULOTTE'),
((SELECT id FROM family WHERE name = 'CICONIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CIGOGNE_BLANCHE'),
((SELECT id FROM family WHERE name = 'CICONIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CIGOGNE_NOIRE'),
((SELECT id FROM family WHERE name = 'CINCLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CINCLE_PLONGEUR'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CIRCAETE_JEAN_LE_BLANC'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CISTICOLE_DES_JONCS'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COCHEVIS_HUPPE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COMBATTANT_VARIE'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CORBEAU_FREUX'),
((SELECT id FROM family WHERE name = 'PHALACROCORACIDES'),
(SELECT id FROM migration_type WHERE name = 'UNKNOWN'), 'CORMORAN_HUPPE'),
((SELECT id FROM family WHERE name = 'PHALACROCORACIDES'),
(SELECT id FROM migration_type WHERE name = 'UNKNOWN'), 'CORMORAN_PYGMEE'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CORNEILLE_MANTELEE'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CORNEILLE_NOIRE'),
((SELECT id FROM family WHERE name = 'CUCULIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COUCOU_GEAI'),
((SELECT id FROM family WHERE name = 'CUCULIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COUCOU_GRIS'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COURLIS_A_BEC_GRELE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COURLIS_CENDRE'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COURLIS_CORLIEU'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'COURVITE_ISABELLE'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CRABIER_CHEVELU'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CRAVE_A_BEC_ROUGE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CYGNE_CHANTEUR'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CYGNE_DE_BEWICK'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'CYGNE_TUBERCULE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'DURBEC_DES_SAPINS'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ECHASSE_BLANCHE'),
((SELECT id FROM family WHERE name = 'TYTONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'EFFRAIE_DES_CLOCHERS'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'EIDER_A_DUVET'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ELANION_BLANC'),
((SELECT id FROM family WHERE name = 'CAPRIMULGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ENGOULEVENT_D_EUROPE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'EPERVIER_D_EUROPE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ERISMATURE_A_TETE_BLANCHE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ERISMATURE_ROUSSE'),
((SELECT id FROM family WHERE name = 'STURNIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ETOURNEAU_ROSELIN'),
((SELECT id FROM family WHERE name = 'STURNIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ETOURNEAU_SANSONNET'),
((SELECT id FROM family WHERE name = 'STURNIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ETOURNEAU_UNICOLORE'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAISAN_DE_COLCHIDE'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_CRECERELLE'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_CRECERELLETTE'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_D_ELEONORE'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_EMERILLON'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_GERFAUT'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_HOBEREAU'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_KOBEZ'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_PELERIN'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUCON_SACRE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_A_LUNETTES'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_A_TETE_NOIRE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_BABILLARDE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_DES_JARDINS'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_EPERVIERE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_GRISETTE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_MELANOCEPHALE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_ORPHEE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_PASSERINETTE'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FAUVETTE_PITCHOU'),
((SELECT id FROM family WHERE name = 'UNKNOWN' /* ou CICONIIDES selon classification */),
(SELECT id FROM migration_type WHERE name = 'UNKNOWN'), 'FLAMANT_ROSE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FOU_DE_BASSAN'),
((SELECT id FROM family WHERE name = 'RALLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FOULQUE_MACROULE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FULIGULE_A_BEC_CERCLE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FULIGULE_A_TETE_NOIRE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FULIGULE_MILOUIN'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FULIGULE_MILOUINAN'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FULIGULE_MORILLON'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'FULIGULE_NYROCA'),
((SELECT id FROM family WHERE name = 'RALLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GALLINULE_POULE_D_EAU'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GARROT_A_OEIL_D_OR'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GEAI_DES_CHENES'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GELINOTTE_DES_BOIS'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GLAREOLE_A_AILES_NOIRES'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GLAREOLE_A_COLLIER'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOBEMOUCHE_A_COLLIER'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOBEMOUCHE_A_DEMI_COLLIER'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOBEMOUCHE_GRIS'),
((SELECT id FROM family where name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOBEMOUCHE_NAIN'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOBEMOUCHE_NOIR'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_A_AILES_BLANCHES'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_ARGENTE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_BOURGMESTRE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_BRUN'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_CENDRE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_D_AUDOUIN'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_LEUCOPHEE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_MARIN'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_PONTIQUE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GOELAND_RAILLEUR'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GORGEBLEUE_A_MIROIR'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRAND_CORBEAU'),
((SELECT id FROM family WHERE name = 'PHALACROCORACIDES'),
(SELECT id FROM migration_type WHERE name = 'UNKNOWN'), 'GRAND_CORMORAN'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRAND_GRAVELOT'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRAND_LABBE'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRAND_TETRAS'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRAND_DUC_D_EUROPE'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRANDE_AIGRETTE'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRAVELOT_A_COLLIER_INTERROMPU'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRAVELOT_KILDIR'),
((SELECT id FROM family WHERE name = 'PODICIPEDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GREBE_A_COU_NOIR'),
((SELECT id FROM family WHERE name = 'PODICIPEDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GREBE_CASTAGNEUX'),
((SELECT id FROM family WHERE name = 'PODICIPEDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GREBE_ESCLAVON'),
((SELECT id FROM family WHERE name = 'PODICIPEDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GREBE_HUPPE'),
((SELECT id FROM family WHERE name = 'PODICIPEDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GREBE_JOUGRIS'),
((SELECT id FROM family WHERE name = 'CERTHIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRIMPEREAU_DES_BOIS'),
((SELECT id FROM family WHERE name = 'CERTHIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRIMPEREAU_DES_JARDINS'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRIVE_DE_SIBERIE'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRIVE_DRAINE'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRIVE_LITORNE'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRIVE_MAUVIS'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRIVE_MUSICIENNE'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GROSBEC_CASSE_NOYAUX'),
((SELECT id FROM family WHERE name = 'CERTHIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GRUE_CENDREE'),
((SELECT id FROM family WHERE name = 'MEROPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GUEPIER_D_EUROPE'),
((SELECT id FROM family WHERE name = 'MEROPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GUEPIER_DE_PERSE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GUIFETTE_LEUCOPTERE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GUIFETTE_MOUSTAC'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GUIFETTE_NOIRE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GUILLEMOT_A_LONG_BEC'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GUILLEMOT_DE_TROIL'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'GYPAETE_BARBU'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HARELDE_BOREALE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HARLE_BIEVRE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HARLE_HUPPE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HARLE_PIETTE'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HERON_CENDRE'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HERON_GARDE_BOEUFS'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HERON_POURPRE'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HIBOU_DES_MARAIS'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HIBOU_MOYEN_DUC'),
((SELECT id FROM family WHERE name = 'HIRUNDINIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HIRONDELLE_DE_FENETRE'),
((SELECT id FROM family WHERE name = 'HIRUNDINIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HIRONDELLE_DE_RIVAGE'),
((SELECT id FROM family WHERE name = 'HIRUNDINIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HIRONDELLE_DE_ROCHERS'),
((SELECT id FROM family WHERE name = 'HIRUNDINIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HIRONDELLE_ROUSSELINE'),
((SELECT id FROM family WHERE name = 'HIRUNDINIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HIRONDELLE_RUSTIQUE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HUITRIER_PIE'),
((SELECT id FROM family WHERE name = 'UPUPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HUPPE_FASCIEE'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HYPOLAIS_BOTTEE'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HYPOLAIS_ICTERINE'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'HYPOLAIS_POLYGLOTTE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'IBIS_CHAUVE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'IBIS_FALCINELLE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'IBIS_SACRE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'IRANIE_A_GORGE_BLANCHE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'JASEUR_BOREAL'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LABBE_A_LONGUE_QUEUE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LABBE_PARASITE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LABBE_POMARIN'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LAGOPEDE_ALPIN'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LINOTTE_A_BEC_JAUNE'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LINOTTE_MELODIEUSE'),
((SELECT id FROM family WHERE name = 'LOCUSTELLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LOCUSTELLE_FLUVIATILE'),
((SELECT id FROM family WHERE name = 'LOCUSTELLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LOCUSTELLE_LUSCINIOIDE'),
((SELECT id FROM family WHERE name = 'LOCUSTELLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LOCUSTELLE_TACHETEE'),
((SELECT id FROM family WHERE name = 'ORIOLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LORIOT_D_EUROPE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'LUSCINIOLE_A_MOUSTACHES'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MACREUSE_BRUNE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MACREUSE_NOIRE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MAROUETTE_DE_BAILLON'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MAROUETTE_PONCTUEE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MAROUETTE_POUSSIN'),
((SELECT id FROM family WHERE name = 'ALCEDINIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MARTIN_PECHEUR_D_EUROPE'),
((SELECT id FROM family WHERE name = 'APODIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MARTINET_A_VENTRE_BLANC'),
((SELECT id FROM family WHERE name = 'APODIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MARTINET_NOIR'),
((SELECT id FROM family WHERE name = 'APODIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MARTINET_PALE'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MERLE_A_PLASTRON'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MERLE_NOIR'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_A_LONGUE_QUEUE'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_ALPESTRE'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_BLEUE'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_BOREALE'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_CHARBONNIERE'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_DES_SAULES'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_HUPPEE'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_NOIRE'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MESANGE_NONNETTE'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MILAN_NOIR'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MILAN_ROYAL'),
((SELECT id FROM family WHERE name = 'PASSERIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOINEAU_CISALPIN'),
((SELECT id FROM family WHERE name = 'PASSERIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOINEAU_DOMESTIQUE'),
((SELECT id FROM family WHERE name = 'PASSERIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOINEAU_ESPAGNOL'),
((SELECT id FROM family WHERE name = 'PASSERIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOINEAU_FRIQUET'),
((SELECT id FROM family WHERE name = 'PASSERIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOINEAU_SOULCIE'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MONTICOLE_BLEU'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MONTICOLE_DE_ROCHE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_ATRICILLE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_BLANCHE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_DE_FRANKLIN'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_DE_SABINE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_MELANOCEPHALE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_PYGMEE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_RIEUSE'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'MOUETTE_TRIDACTYLE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'NETTE_ROUSSE'),
((SELECT id FROM family WHERE name = 'PASSERIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'NIVEROLLE_ALPINE'),
((SELECT id FROM family WHERE name = 'UNKNOWN' /* ou LARIDES selon classification */),
(SELECT id FROM migration_type WHERE name = 'UNKNOWN'), 'OCEANITE_CULBLANC'),
((SELECT id FROM family WHERE name = 'UNKNOWN' /* ou LARIDES */),
(SELECT id FROM migration_type WHERE name = 'UNKNOWN'), 'OCEANITE_DE_CASTRO'),
((SELECT id FROM family WHERE name = 'UNKNOWN' /* ou LARIDES */),
(SELECT id FROM migration_type WHERE name = 'UNKNOWN'), 'OCEANITE_TEMPETE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OEDICNEME_CRIARD'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OIE_A_BEC_COURT'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OIE_CENDREE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OIE_DES_MOISSONS'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OIE_DES_NEIGES'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OIE_NAINE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OIE_RIEUSE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OUETTE_D_EGYPTE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OUTARDE_BARBUE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OUTARDE_CANEPETIERE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OUTARDE_DE_MACQUEEN'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'OUTARDE_HOUBARA'),
((SELECT id FROM family WHERE name = 'PANURIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PANURE_A_MOUSTACHES'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PELICAN_BLANC'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PELICAN_FRISE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PELICAN_GRIS'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PERDRIX_BARTAVELLE'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PERDRIX_GRISE'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PERDRIX_ROUGE'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PETIT_GRAVELOT'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PETIT_DUC_SCOPS'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PHALAROPE_A_BEC_ETROIT'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PHALAROPE_A_BEC_LARGE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PHRAGMITE_AQUATIQUE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PHRAGMITE_DES_JONCS'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_A_DOS_BLANC'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_CENDRE'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_EPEICHE'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_EPEICHETTE'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_MAR'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_NOIR'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_TRIDACTYLE'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIC_VERT'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIE_BAVARDE'),
((SELECT id FROM family WHERE name = 'LANIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIE_GRIECHE_A_POITRINE_ROSE'),
((SELECT id FROM family WHERE name = 'LANIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIE_GRIECHE_A_TETE_ROUSSE'),
((SELECT id FROM family WHERE name = 'LANIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIE_GRIECHE_ECORCHEUR'),
((SELECT id FROM family WHERE name = 'LANIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIE_GRIECHE_GRISE'),
((SELECT id FROM family WHERE name = 'LANIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIE_GRIECHE_ISABELLE'),
((SELECT id FROM family WHERE name = 'COLUMBIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIGEON_BISET_DOMESTIQUE'),
((SELECT id FROM family WHERE name = 'COLUMBIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIGEON_COLOMBIN'),
((SELECT id FROM family WHERE name = 'COLUMBIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIGEON_RAMIER'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PINSON_DES_ARBRES'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PINSON_DU_NORD'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIPIT_A_DOS_OLIVE'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIPIT_A_GORGE_ROUSSE'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIPIT_DE_RICHARD'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIPIT_DES_ARBRES'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIPIT_FARLOUSE'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIPIT_ROUSSELINE'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PIPIT_SPIONCELLE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLONGEON_A_BEC_BLANC'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLONGEON_ARCTIQUE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLONGEON_CATMARIN'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLONGEON_DU_PACIFIQUE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLONGEON_IMBRIN'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLUVIER_ARGENTE'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLUVIER_DORE'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLUVIER_FAUVE'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PLUVIER_GUIGNARD'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_A_GRANDS_SOURCILS'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_BRUN'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_DE_BONELLI'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_DE_HUME'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_DE_PALLAS'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_DE_SCHWARZ'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_DE_SIBERIE'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_FITIS'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_IBERIQUE'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_SIFFLEUR'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_VELOCE'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'POUILLOT_VERDATRE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PUFFIN_CENDRE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PUFFIN_DE_SCOPOLI'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PUFFIN_DES_ANGLAIS'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PUFFIN_FULIGINEUX'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PUFFIN_YELKOUAN'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'PYGARGUE_A_QUEUE_BLANCHE'),
((SELECT id FROM family WHERE name = 'RALLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'RALE_D_EAU'),
((SELECT id FROM family WHERE name = 'RALLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'RALE_DES_GENETS'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'REMIZ_PENDULINE'),
((SELECT id FROM family WHERE name = 'REGULIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROITELET_A_TRIPLE_BANDEAU'),
((SELECT id FROM family WHERE name = 'REGULIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROITELET_HUPPE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROLLIER_D_EUROPE'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROSELIN_CRAMOISI'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROSELIN_GITHAGINE'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROSSIGNOL_PHILOMELE'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROSSIGNOL_PROGNE'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUGEGORGE_FAMILIER'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUGEQUEUE_A_FRONT_BLANC'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUGEQUEUE_NOIR'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUSSEROLLE_DES_BUISSONS'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUSSEROLLE_EFFARVATTE'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUSSEROLLE_ISABELLE'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUSSEROLLE_TURDOIDE'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'ROUSSEROLLE_VERDEROLLE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SARCELLE_A_AILES_BLEUES'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SARCELLE_D_ETE'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SARCELLE_D_HIVER'),
((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SARCELLE_MARBREE'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SERIN_CINI'),
((SELECT id FROM family WHERE name = 'SITTIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SITTELLE_TORCHEPOT'),
((SELECT id from family where name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SIZERIN_FLAMME'),
((SELECT id from family where name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SPATULE_BLANCHE'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_ARCTIQUE'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_CASPIENNE'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_CAUGEK'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_DE_DOUGALL'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_HANSEL'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_NAINE'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_PIERREGARIN'),
((SELECT id from family where name = 'LARIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'STERNE_VOYAGEUSE'),
((SELECT id from family where name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'SYRRHAPTE_PARADOXAL'),
((SELECT id from family where name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TADORNE_CASARCA'),
((SELECT id from family where name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TADORNE_DE_BELON'),
((SELECT id from family where name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TALEVE_SULTANE'),
((SELECT id from family where name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TALEVE_VIOLACEE'),
((SELECT id from family where name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TARIER_DES_PRES'),
((SELECT id from family where name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TARIER_PATRE'),
((SELECT id from family where name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TARIN_DES_AULNES'),
((SELECT id from family where name = 'PHASIANIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TETRAS_LYRE'),
((SELECT id from family where name = 'TICHODROMIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TICHODROME_ECHELETTE'),
((SELECT id from family where name = 'PICIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TORCOL_FOURMILIER'),
((SELECT id from family where name = 'UNKNOWN'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TOURNEPIERRE_A_COLLIER'),
((SELECT id from family where name = 'COLUMBIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TOURTERELLE_DES_BOIS'),
((SELECT id from family where name = 'COLUMBIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TOURTERELLE_TURQUE'),
((SELECT id from family where name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TRAQUET_DU_DESERT'),
((SELECT id from family where name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TRAQUET_MOTTEUX'),
((SELECT id from family where name = 'MUSCICAPIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TRAQUET_OREILLARD'),
((SELECT id from family where name = 'TROGLODYTIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'TROGLODYTE_MIGNON'),
((SELECT id from family where name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'VANNEAU_HUPPE'),
((SELECT id from family where name = 'CHARADRIIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'VANNEAU_SOCIABLE'),
((SELECT id from family where name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'VAUTOUR_FAUVE'),
((SELECT id from family where name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'VAUTOUR_MOINE'),
((SELECT id from family where name = 'ACCIPITRIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'VAUTOUR_PERCNOPTERE'),
((SELECT id from family where name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'VENTURON_MONTAGNARD'),
((SELECT id from family where name = 'FRINGILLIDES'), (SELECT id FROM migration_type WHERE name = 'UNKNOWN'),
'VERDIER_D_EUROPE');
INSERT INTO fetcher(name)
VALUES ('Vogelwarte'),
('chant-oiseaux.fr'),
('oiseaux.net');
INSERT INTO profile(name)
VALUES ('default');
INSERT INTO picture_type (name)
VALUES ('ADULT_NUPTIAL_MALE'),
('ADULT_NUPTIAL_FEMALE'),
('ADULT_NUPTIAL'),
('ADULT_INTERNUPTIAL_MALE'),
('ADULT_INTERNUPTIAL_FEMALE'),
('ADULT_INTERNUPTIAL'),
('ADULT_MALE'),
('ADULT_FEMALE'),
('ADULT'),
('JUVENILE_MALE'),
('JUVENILE_FEMALE'),
('JUVENILE'),
('LIGHT_MORPH'),
('DARK_MORPH'),
('SUB_SPECIES'),
('UNKNOWN');
INSERT INTO sound_type(name)
VALUES ('SONG'),
('CALL'),
('ALARM'),
('FLY_CALL'),
('JUVENILE_CALL'),
('UNKNOWN');
INSERT INTO question_type (name)
VALUES ('PICTURE_EXACT'),
('PICTURE_MULTICHOICE'),
('SOUND_EXACT'),
('SOUND_MULTICHOICE'),
('SOUND_MULTICHOICE_PICTURE');

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,938 @@
INSERT INTO language(name)
VALUES ('FR');
INSERT INTO family_translation(family_id, language_id, translation)
VALUES ((SELECT id FROM family WHERE name = 'ANATIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Anatidés'),
((SELECT id FROM family WHERE name = 'PHASIANIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Phasianidés'),
((SELECT id FROM family WHERE name = 'PODICIPEDIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Podicipédidés'),
((SELECT id FROM family WHERE name = 'CICONIIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Ciconiidés'),
((SELECT id FROM family WHERE name = 'ARDEIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Ardéidés'),
((SELECT id FROM family WHERE name = 'PHALACROCORACIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Phalacrocoracidés'),
((SELECT id FROM family WHERE name = 'ACCIPITRIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Accipitridés'),
((SELECT id FROM family WHERE name = 'RALLIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Rallidés'),
((SELECT id FROM family WHERE name = 'CHARADRIIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Charadriidés'),
((SELECT id FROM family WHERE name = 'SCOLOPACIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Scolopacidés'),
((SELECT id FROM family WHERE name = 'LARIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Laridés'),
((SELECT id FROM family WHERE name = 'COLUMBIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Columbidés'),
((SELECT id FROM family WHERE name = 'CUCULIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Cuculidés'),
((SELECT id FROM family WHERE name = 'TYTONIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Tytonidés'),
((SELECT id FROM family WHERE name = 'STRIGIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Strigidés'),
((SELECT id FROM family WHERE name = 'CAPRIMULGIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Caprimulgidés'),
((SELECT id FROM family WHERE name = 'APODIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Apodidés'),
((SELECT id FROM family WHERE name = 'ALCEDINIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Alcédinidés'),
((SELECT id FROM family WHERE name = 'MEROPIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Méropidés'),
((SELECT id FROM family WHERE name = 'UPUPIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Upupidés'),
((SELECT id FROM family WHERE name = 'PICIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Picidés'),
((SELECT id FROM family WHERE name = 'FALCONIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Falconidés'),
((SELECT id FROM family WHERE name = 'LANIIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Laniidés'),
((SELECT id FROM family WHERE name = 'ORIOLIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Oriolidés'),
((SELECT id FROM family WHERE name = 'CORVIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Corvidés'),
((SELECT id FROM family WHERE name = 'PARIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Paridés'),
((SELECT id FROM family WHERE name = 'PANURIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Panuridés'),
((SELECT id FROM family WHERE name = 'ALAUDIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Alaudidés'),
((SELECT id FROM family WHERE name = 'HIRUNDINIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Hirundinidés'),
((SELECT id FROM family WHERE name = 'AEGITHALIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Aegithalidés'),
((SELECT id FROM family WHERE name = 'PHYLLOSCOPIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Phylloscopidés'),
((SELECT id FROM family WHERE name = 'ACROCEPHALIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Acrocéphalidés'),
((SELECT id FROM family WHERE name = 'LOCUSTELLIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Locustellidés'),
((SELECT id FROM family WHERE name = 'SYLVIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Sylvidés'),
((SELECT id FROM family WHERE name = 'REGULIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Régulidés'),
((SELECT id FROM family WHERE name = 'TROGLODYTIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Troglodytidés'),
((SELECT id FROM family WHERE name = 'SITTIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Sittidés'),
((SELECT id FROM family WHERE name = 'TICHODROMIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Tichodromidés'),
((SELECT id FROM family WHERE name = 'CERTHIIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Certhiidés'),
((SELECT id FROM family WHERE name = 'STURNIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Sturnidés'),
((SELECT id FROM family WHERE name = 'TURDIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Turdidés'),
((SELECT id FROM family WHERE name = 'MUSCICAPIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Muscicapidés'),
((SELECT id FROM family WHERE name = 'CINCLIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Cinclidés'),
((SELECT id FROM family WHERE name = 'PASSERIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Passéridés'),
((SELECT id FROM family WHERE name = 'PRUNELLIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Prunellidés'),
((SELECT id FROM family WHERE name = 'MOTACILLIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Motacillidés'),
((SELECT id FROM family WHERE name = 'FRINGILLIDES'), (SELECT id FROM language WHERE name = 'FR'),
'Fringillidés'),
((SELECT id FROM family WHERE name = 'EMBERIZIDES'), (SELECT id FROM language WHERE name = 'FR'), 'Emberizidés'),
((SELECT id FROM family WHERE name = 'UNKNOWN'), (SELECT id FROM language WHERE name = 'FR'), 'Inconnu');
INSERT INTO bird_translation(bird_id, language_id, translation)
VALUES ((SELECT id FROM bird WHERE name = 'ACCENTEUR_ALPIN'), (SELECT id FROM language WHERE name = 'FR'),
'Accenteur alpin'),
((SELECT id FROM bird WHERE name = 'ACCENTEUR_MOUCHET'), (SELECT id FROM language WHERE name = 'FR'),
'Accenteur mouchet'),
((SELECT id FROM bird WHERE name = 'AGROBATE_ROUX'), (SELECT id FROM language WHERE name = 'FR'),
'Agrobate roux'),
((SELECT id FROM bird WHERE name = 'AIGLE_BOTTE'), (SELECT id FROM language WHERE name = 'FR'), 'Aigle botté'),
((SELECT id FROM bird WHERE name = 'AIGLE_CRIARD'), (SELECT id FROM language WHERE name = 'FR'), 'Aigle criard'),
((SELECT id FROM bird WHERE name = 'AIGLE_POMARIN'), (SELECT id FROM language WHERE name = 'FR'),
'Aigle pomarin'),
((SELECT id FROM bird WHERE name = 'AIGLE_ROYAL'), (SELECT id FROM language WHERE name = 'FR'), 'Aigle royal'),
((SELECT id FROM bird WHERE name = 'AIGRETTE_GARZETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Aigrette garzette'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_CALANDRE'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette calandre'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_CALANDRELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette calandrelle'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_DES_CHAMPS'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette des champs'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_HAUSSECOL'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette haussecol'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_LEUCOPTERE'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette leucoptère'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_LULU'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette lulu'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_MONTICOLE'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette monticole'),
((SELECT id FROM bird WHERE name = 'ALOUETTE_PISPOLETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Alouette pispolette'),
((SELECT id FROM bird WHERE name = 'AUTOUR_DES_PALOMBES'), (SELECT id FROM language WHERE name = 'FR'),
'Autour des palombes'),
((SELECT id FROM bird WHERE name = 'AVOCETTE_ELEGANTE'), (SELECT id FROM language WHERE name = 'FR'),
'Avocette élégante'),
((SELECT id FROM bird WHERE name = 'BALBUZARD_PECHEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Balbuzard pêcheur'),
((SELECT id FROM bird WHERE name = 'BARGE_A_QUEUE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Barge à queue noire'),
((SELECT id FROM bird WHERE name = 'BARGE_ROUSSE'), (SELECT id FROM language WHERE name = 'FR'), 'Barge rousse'),
((SELECT id FROM bird WHERE name = 'BEC_CROISE_DES_SAPINS'), (SELECT id FROM language WHERE name = 'FR'),
'Bec-croisé des sapins'),
((SELECT id FROM bird WHERE name = 'BECASSE_DES_BOIS'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasse des bois'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_COCORLI'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau cocorli'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_DE_BONAPARTE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau de Bonaparte'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_DE_TEMMINCK'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau de Temminck'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_FALCINELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau falcinelle'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_MAUBECHE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau maubèche'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_MINUTE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau minute'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_ROUSSET'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau rousset'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_SANDERLING'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau sanderling'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_TACHETE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau tacheté'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_VARIABLE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau variable'),
((SELECT id FROM bird WHERE name = 'BECASSEAU_VIOLET'), (SELECT id FROM language WHERE name = 'FR'),
'Bécasseau violet'),
((SELECT id FROM bird WHERE name = 'BECASSINE_DES_MARAIS'), (SELECT id FROM language WHERE name = 'FR'),
'Bécassine des marais'),
((SELECT id FROM bird WHERE name = 'BECASSINE_DOUBLE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécassine double'),
((SELECT id FROM bird WHERE name = 'BECASSINE_SOURDE'), (SELECT id FROM language WHERE name = 'FR'),
'Bécassine sourde'),
((SELECT id FROM bird WHERE name = 'BERGERONNETTE_CITRINE'), (SELECT id FROM language WHERE name = 'FR'),
'Bergeronnette citrine'),
((SELECT id FROM bird WHERE name = 'BERGERONNETTE_DES_RUISSEAUX'), (SELECT id FROM language WHERE name = 'FR'),
'Bergeronnette des ruisseaux'),
((SELECT id FROM bird WHERE name = 'BERGERONNETTE_GRISE'), (SELECT id FROM language WHERE name = 'FR'),
'Bergeronnette grise'),
((SELECT id FROM bird WHERE name = 'BERGERONNETTE_PRINTANIERE'), (SELECT id FROM language WHERE name = 'FR'),
'Bergeronnette printanière'),
((SELECT id FROM bird WHERE name = 'BERNACHE_A_COU_ROUX'), (SELECT id FROM language WHERE name = 'FR'),
'Bernache à cou roux'),
((SELECT id FROM bird WHERE name = 'BERNACHE_CRAVANT'), (SELECT id FROM language WHERE name = 'FR'),
'Bernache cravant'),
((SELECT id FROM bird WHERE name = 'BERNACHE_DU_CANADA'), (SELECT id FROM language WHERE name = 'FR'),
'Bernache du Canada'),
((SELECT id FROM bird WHERE name = 'BERNACHE_NONNETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Bernache nonnette'),
((SELECT id FROM bird WHERE name = 'BIHOREAU_GRIS'), (SELECT id FROM language WHERE name = 'FR'),
'Bihoreau gris'),
((SELECT id FROM bird WHERE name = 'BLONGIOS_NAIN'), (SELECT id FROM language WHERE name = 'FR'),
'Blongios nain'),
((SELECT id FROM bird WHERE name = 'BONDREE_APIVORE'), (SELECT id FROM language WHERE name = 'FR'),
'Bondrée apivore'),
((SELECT id FROM bird WHERE name = 'BOUSCARLE_DE_CETTI'), (SELECT id FROM language WHERE name = 'FR'),
'Bouscarle de Cetti'),
((SELECT id FROM bird WHERE name = 'BOUVREUIL_PIVOINE'), (SELECT id FROM language WHERE name = 'FR'),
'Bouvreuil pivoine'),
((SELECT id FROM bird WHERE name = 'BRUANT_A_CALOTTE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant à calotte blanche'),
((SELECT id FROM bird WHERE name = 'BRUANT_CHANTEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant chanteur'),
((SELECT id FROM bird WHERE name = 'BRUANT_DES_NEIGES'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant des neiges'),
((SELECT id FROM bird WHERE name = 'BRUANT_DES_ROSEAUX'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant des roseaux'),
((SELECT id FROM bird WHERE name = 'BRUANT_FOU'), (SELECT id FROM language WHERE name = 'FR'), 'Bruant fou'),
((SELECT id FROM bird WHERE name = 'BRUANT_JAUNE'), (SELECT id FROM language WHERE name = 'FR'), 'Bruant jaune'),
((SELECT id FROM bird WHERE name = 'BRUANT_LAPON'), (SELECT id FROM language WHERE name = 'FR'), 'Bruant lapon'),
((SELECT id FROM bird WHERE name = 'BRUANT_MELANOCEPHALE'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant mélanocéphale'),
((SELECT id FROM bird WHERE name = 'BRUANT_NAIN'), (SELECT id FROM language WHERE name = 'FR'), 'Bruant nain'),
((SELECT id FROM bird WHERE name = 'BRUANT_ORTOLAN'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant ortolan'),
((SELECT id FROM bird WHERE name = 'BRUANT_PROYER'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant proyer'),
((SELECT id FROM bird WHERE name = 'BRUANT_RUSTIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Bruant rustique'),
((SELECT id FROM bird WHERE name = 'BRUANT_ZIZI'), (SELECT id FROM language WHERE name = 'FR'), 'Bruant zizi'),
((SELECT id FROM bird WHERE name = 'BUSARD_CENDRE'), (SELECT id FROM language WHERE name = 'FR'),
'Busard cendré'),
((SELECT id FROM bird WHERE name = 'BUSARD_DES_ROSEAUX'), (SELECT id FROM language WHERE name = 'FR'),
'Busard des roseaux'),
((SELECT id FROM bird WHERE name = 'BUSARD_PALE'), (SELECT id FROM language WHERE name = 'FR'), 'Busard pâle'),
((SELECT id FROM bird WHERE name = 'BUSARD_SAINT_MARTIN'), (SELECT id FROM language WHERE name = 'FR'),
'Busard Saint-Martin'),
((SELECT id FROM bird WHERE name = 'BUSE_FEROCE'), (SELECT id FROM language WHERE name = 'FR'), 'Buse féroce'),
((SELECT id FROM bird WHERE name = 'BUSE_PATTUE'), (SELECT id FROM language WHERE name = 'FR'), 'Buse pattue'),
((SELECT id FROM bird WHERE name = 'BUSE_VARIABLE'), (SELECT id FROM language WHERE name = 'FR'),
'Buse variable'),
((SELECT id FROM bird WHERE name = 'BUTOR_ETOILE'), (SELECT id FROM language WHERE name = 'FR'), 'Butor étoilé'),
((SELECT id FROM bird WHERE name = 'CAILLE_DES_BLES'), (SELECT id FROM language WHERE name = 'FR'),
'Caille des blés'),
((SELECT id FROM bird WHERE name = 'CANARD_CAROLIN'), (SELECT id FROM language WHERE name = 'FR'),
'Canard carolin'),
((SELECT id FROM bird WHERE name = 'CANARD_CHIPEAU'), (SELECT id FROM language WHERE name = 'FR'),
'Canard chipeau'),
((SELECT id FROM bird WHERE name = 'CANARD_COLVERT'), (SELECT id FROM language WHERE name = 'FR'),
'Canard colvert'),
((SELECT id FROM bird WHERE name = 'CANARD_MANDARIN'), (SELECT id FROM language WHERE name = 'FR'),
'Canard mandarin'),
((SELECT id FROM bird WHERE name = 'CANARD_PILET'), (SELECT id FROM language WHERE name = 'FR'), 'Canard pilet'),
((SELECT id FROM bird WHERE name = 'CANARD_SIFFLEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Canard siffleur'),
((SELECT id FROM bird WHERE name = 'CANARD_SOUCHET'), (SELECT id FROM language WHERE name = 'FR'),
'Canard souchet'),
((SELECT id FROM bird WHERE name = 'CASSENOIX_MOUCHETE'), (SELECT id FROM language WHERE name = 'FR'),
'Cassenoix moucheté'),
((SELECT id FROM bird WHERE name = 'CHARDONNERET_ELEGANT'), (SELECT id FROM language WHERE name = 'FR'),
'Chardonneret élégant'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_ABOYEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier aboyeur'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_ARLEQUIN'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier arlequin'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_BARGETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier bargette'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_CULBLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier cul-blanc'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_GAMBETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier gambette'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_GRIVELE'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier grivelé'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_GUIGNETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier guignette'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_STAGNATILE'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier stagnatile'),
((SELECT id FROM bird WHERE name = 'CHEVALIER_SYLVAIN'), (SELECT id FROM language WHERE name = 'FR'),
'Chevalier sylvain'),
((SELECT id FROM bird WHERE name = 'CHEVECHE_D_ATHENA'), (SELECT id FROM language WHERE name = 'FR'),
'Chevêche d''Athéna'),
((SELECT id FROM bird WHERE name = 'CHEVECHETTE_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Chevêchette d''Europe'),
((SELECT id FROM bird WHERE name = 'CHOCARD_A_BEC_JAUNE'), (SELECT id FROM language WHERE name = 'FR'),
'Chocard à bec jaune'),
((SELECT id FROM bird WHERE name = 'CHOUCAS_DES_TOURS'), (SELECT id FROM language WHERE name = 'FR'),
'Choucas des tours'),
((SELECT id FROM bird WHERE name = 'CHOUETTE_DE_TENGMALM'), (SELECT id FROM language WHERE name = 'FR'),
'Chouette de Tengmalm'),
((SELECT id FROM bird WHERE name = 'CHOUETTE_EPERVIERE'), (SELECT id FROM language WHERE name = 'FR'),
'Chouette épervière'),
((SELECT id FROM bird WHERE name = 'CHOUETTE_HULOTTE'), (SELECT id FROM language WHERE name = 'FR'),
'Chouette hulotte'),
((SELECT id FROM bird WHERE name = 'CIGOGNE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Cigogne blanche'),
((SELECT id FROM bird WHERE name = 'CIGOGNE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Cigogne noire'),
((SELECT id FROM bird WHERE name = 'CINCLE_PLONGEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Cincle plongeur'),
((SELECT id FROM bird WHERE name = 'CIRCAETE_JEAN_LE_BLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Circaète Jean-le-Blanc'),
((SELECT id FROM bird WHERE name = 'CISTICOLE_DES_JONCS'), (SELECT id FROM language WHERE name = 'FR'),
'Cisticole des joncs'),
((SELECT id FROM bird WHERE name = 'COCHEVIS_HUPPE'), (SELECT id FROM language WHERE name = 'FR'),
'Cochevis huppé'),
((SELECT id FROM bird WHERE name = 'COMBATTANT_VARIE'), (SELECT id FROM language WHERE name = 'FR'),
'Combattant varié'),
((SELECT id FROM bird WHERE name = 'CORBEAU_FREUX'), (SELECT id FROM language WHERE name = 'FR'),
'Corbeau freux'),
((SELECT id FROM bird WHERE name = 'CORMORAN_HUPPE'), (SELECT id FROM language WHERE name = 'FR'),
'Cormoran huppé'),
((SELECT id FROM bird WHERE name = 'CORMORAN_PYGMEE'), (SELECT id FROM language WHERE name = 'FR'),
'Cormoran pygmée'),
((SELECT id FROM bird WHERE name = 'CORNEILLE_MANTELEE'), (SELECT id FROM language WHERE name = 'FR'),
'Corneille mantelée'),
((SELECT id FROM bird WHERE name = 'CORNEILLE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Corneille noire'),
((SELECT id FROM bird WHERE name = 'COUCOU_GEAI'), (SELECT id FROM language WHERE name = 'FR'), 'Coucou geai'),
((SELECT id FROM bird WHERE name = 'COUCOU_GRIS'), (SELECT id FROM language WHERE name = 'FR'), 'Coucou gris'),
((SELECT id FROM bird WHERE name = 'COURLIS_A_BEC_GRELE'), (SELECT id FROM language WHERE name = 'FR'),
'Courlis à bec grêle'),
((SELECT id FROM bird WHERE name = 'COURLIS_CENDRE'), (SELECT id FROM language WHERE name = 'FR'),
'Courlis cendré'),
((SELECT id FROM bird WHERE name = 'COURLIS_CORLIEU'), (SELECT id FROM language WHERE name = 'FR'),
'Courlis corlieu'),
((SELECT id FROM bird WHERE name = 'COURVITE_ISABELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Courvite isabelle'),
((SELECT id FROM bird WHERE name = 'CRABIER_CHEVELU'), (SELECT id FROM language WHERE name = 'FR'),
'Crabier chevelu'),
((SELECT id FROM bird WHERE name = 'CRAVE_A_BEC_ROUGE'), (SELECT id FROM language WHERE name = 'FR'),
'Crave à bec rouge'),
((SELECT id FROM bird WHERE name = 'CYGNE_CHANTEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Cygne chanteur'),
((SELECT id FROM bird WHERE name = 'CYGNE_DE_BEWICK'), (SELECT id FROM language WHERE name = 'FR'),
'Cygne de Bewick'),
((SELECT id FROM bird WHERE name = 'CYGNE_TUBERCULE'), (SELECT id FROM language WHERE name = 'FR'),
'Cygne tuberculé'),
((SELECT id FROM bird WHERE name = 'DURBEC_DES_SAPINS'), (SELECT id FROM language WHERE name = 'FR'),
'Durbec des sapins'),
((SELECT id FROM bird WHERE name = 'ECHASSE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Échasse blanche'),
((SELECT id FROM bird WHERE name = 'EFFRAIE_DES_CLOCHERS'), (SELECT id FROM language WHERE name = 'FR'),
'Effraie des clochers'),
((SELECT id FROM bird WHERE name = 'EIDER_A_DUVET'), (SELECT id FROM language WHERE name = 'FR'),
'Eider à duvet'),
((SELECT id FROM bird WHERE name = 'ELANION_BLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Élanion blanc'),
((SELECT id FROM bird WHERE name = 'ENGOULEVENT_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Engoulevent d''Europe'),
((SELECT id FROM bird WHERE name = 'EPERVIER_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Épervier d''Europe'),
((SELECT id FROM bird WHERE name = 'ERISMATURE_A_TETE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Érismature à tête blanche'),
((SELECT id FROM bird WHERE name = 'ERISMATURE_ROUSSE'), (SELECT id FROM language WHERE name = 'FR'),
'Érismature rousse'),
((SELECT id FROM bird WHERE name = 'ETOURNEAU_ROSELIN'), (SELECT id FROM language WHERE name = 'FR'),
'Étourneau roselin'),
((SELECT id FROM bird WHERE name = 'ETOURNEAU_SANSONNET'), (SELECT id FROM language WHERE name = 'FR'),
'Étourneau sansonnet'),
((SELECT id FROM bird WHERE name = 'ETOURNEAU_UNICOLORE'), (SELECT id FROM language WHERE name = 'FR'),
'Étourneau unicolore'),
((SELECT id FROM bird WHERE name = 'FAISAN_DE_COLCHIDE'), (SELECT id FROM language WHERE name = 'FR'),
'Faisan de Colchide'),
((SELECT id FROM bird WHERE name = 'FAUCON_CRECERELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Faucon crécerelle'),
((SELECT id FROM bird WHERE name = 'FAUCON_CRECERELLETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Faucon crécerellette'),
((SELECT id FROM bird WHERE name = 'FAUCON_D_ELEONORE'), (SELECT id FROM language WHERE name = 'FR'),
'Faucon d''Éléonore'),
((SELECT id FROM bird WHERE name = 'FAUCON_EMERILLON'), (SELECT id FROM language WHERE name = 'FR'),
'Faucon émerillon'),
((SELECT id FROM bird WHERE name = 'FAUCON_GERFAUT'), (SELECT id FROM language WHERE name = 'FR'),
'Faucon gerfaut'),
((SELECT id FROM bird WHERE name = 'FAUCON_HOBEREAU'), (SELECT id FROM language WHERE name = 'FR'),
'Faucon hobereau'),
((SELECT id FROM bird WHERE name = 'FAUCON_KOBEZ'), (SELECT id FROM language WHERE name = 'FR'), 'Faucon kobez'),
((SELECT id FROM bird WHERE name = 'FAUCON_PELERIN'), (SELECT id FROM language WHERE name = 'FR'),
'Faucon pèlerin'),
((SELECT id FROM bird WHERE name = 'FAUCON_SACRE'), (SELECT id FROM language WHERE name = 'FR'), 'Faucon sacre'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_A_LUNETTES'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette à lunettes'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_A_TETE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette à tête noire'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_BABILLARDE'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette babillarde'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_DES_JARDINS'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette des jardins'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_EPERVIERE'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette épervière'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_GRISETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette grisette'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_MELANOCEPHALE'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette mélanocéphale'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_ORPHEE'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette orphée'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_PASSERINETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette passerinette'),
((SELECT id FROM bird WHERE name = 'FAUVETTE_PITCHOU'), (SELECT id FROM language WHERE name = 'FR'),
'Fauvette pitchou'),
((SELECT id FROM bird WHERE name = 'FLAMANT_ROSE'), (SELECT id FROM language WHERE name = 'FR'), 'Flamant rose'),
((SELECT id FROM bird WHERE name = 'FOU_DE_BASSAN'), (SELECT id FROM language WHERE name = 'FR'),
'Fou de Bassan'),
((SELECT id FROM bird WHERE name = 'FOULQUE_MACROULE'), (SELECT id FROM language WHERE name = 'FR'),
'Foulque macroule'),
((SELECT id FROM bird WHERE name = 'FULIGULE_A_BEC_CERCLE'), (SELECT id FROM language WHERE name = 'FR'),
'Fuligule à bec cerclé'),
((SELECT id FROM bird WHERE name = 'FULIGULE_A_TETE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Fuligule à tête noire'),
((SELECT id FROM bird WHERE name = 'FULIGULE_MILOUIN'), (SELECT id FROM language WHERE name = 'FR'),
'Fuligule milouin'),
((SELECT id FROM bird WHERE name = 'FULIGULE_MILOUINAN'), (SELECT id FROM language WHERE name = 'FR'),
'Fuligule milouinan'),
((SELECT id FROM bird WHERE name = 'FULIGULE_MORILLON'), (SELECT id FROM language WHERE name = 'FR'),
'Fuligule morillon'),
((SELECT id FROM bird WHERE name = 'FULIGULE_NYROCA'), (SELECT id FROM language WHERE name = 'FR'),
'Fuligule nyroca'),
((SELECT id FROM bird WHERE name = 'GALLINULE_POULE_D_EAU'), (SELECT id FROM language WHERE name = 'FR'),
'Gallinule poule-d''eau'),
((SELECT id FROM bird WHERE name = 'GARROT_A_OEIL_D_OR'), (SELECT id FROM language WHERE name = 'FR'),
'Garrot à oeil d''or'),
((SELECT id FROM bird WHERE name = 'GEAI_DES_CHENES'), (SELECT id FROM language WHERE name = 'FR'),
'Geai des chênes'),
((SELECT id FROM bird WHERE name = 'GELINOTTE_DES_BOIS'), (SELECT id FROM language WHERE name = 'FR'),
'Gélinotte des bois'),
((SELECT id FROM bird WHERE name = 'GLAREOLE_A_AILES_NOIRES'), (SELECT id FROM language WHERE name = 'FR'),
'Glaréole à ailes noires'),
((SELECT id FROM bird WHERE name = 'GLAREOLE_A_COLLIER'), (SELECT id FROM language WHERE name = 'FR'),
'Glaréole à collier'),
((SELECT id FROM bird WHERE name = 'GOBEMOUCHE_A_COLLIER'), (SELECT id FROM language WHERE name = 'FR'),
'Gobemouche à collier'),
((SELECT id FROM bird WHERE name = 'GOBEMOUCHE_A_DEMI_COLLIER'), (SELECT id FROM language WHERE name = 'FR'),
'Gobemouche à demi-collier'),
((SELECT id FROM bird WHERE name = 'GOBEMOUCHE_GRIS'), (SELECT id FROM language WHERE name = 'FR'),
'Gobemouche gris'),
((SELECT id FROM bird WHERE name = 'GOBEMOUCHE_NAIN'), (SELECT id FROM language WHERE name = 'FR'),
'Gobemouche nain'),
((SELECT id FROM bird WHERE name = 'GOBEMOUCHE_NOIR'), (SELECT id FROM language WHERE name = 'FR'),
'Gobemouche noir'),
((SELECT id FROM bird WHERE name = 'GOELAND_A_AILES_BLANCHES'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland à ailes blanches'),
((SELECT id FROM bird WHERE name = 'GOELAND_ARGENTE'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland argenté'),
((SELECT id FROM bird WHERE name = 'GOELAND_BOURGMESTRE'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland bourgmestre'),
((SELECT id FROM bird WHERE name = 'GOELAND_BRUN'), (SELECT id FROM language WHERE name = 'FR'), 'Goéland brun'),
((SELECT id FROM bird WHERE name = 'GOELAND_CENDRE'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland cendré'),
((SELECT id FROM bird WHERE name = 'GOELAND_D_AUDOUIN'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland d''Audouin'),
((SELECT id FROM bird WHERE name = 'GOELAND_LEUCOPHEE'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland leucophée'),
((SELECT id FROM bird WHERE name = 'GOELAND_MARIN'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland marin'),
((SELECT id FROM bird WHERE name = 'GOELAND_PONTIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland pontique'),
((SELECT id FROM bird WHERE name = 'GOELAND_RAILLEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Goéland railleur'),
((SELECT id FROM bird WHERE name = 'GORGEBLEUE_A_MIROIR'), (SELECT id FROM language WHERE name = 'FR'),
'Gorgebleue à miroir'),
((SELECT id FROM bird WHERE name = 'GRAND_CORBEAU'), (SELECT id FROM language WHERE name = 'FR'),
'Grand Corbeau'),
((SELECT id FROM bird WHERE name = 'GRAND_CORMORAN'), (SELECT id FROM language WHERE name = 'FR'),
'Grand Cormoran'),
((SELECT id FROM bird WHERE name = 'GRAND_GRAVELOT'), (SELECT id FROM language WHERE name = 'FR'),
'Grand Gravelot'),
((SELECT id FROM bird WHERE name = 'GRAND_LABBE'), (SELECT id FROM language WHERE name = 'FR'), 'Grand Labbe'),
((SELECT id FROM bird WHERE name = 'GRAND_TETRAS'), (SELECT id FROM language WHERE name = 'FR'), 'Grand Tétras'),
((SELECT id FROM bird WHERE name = 'GRAND_DUC_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Grand-duc d''Europe'),
((SELECT id FROM bird WHERE name = 'GRANDE_AIGRETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Grande Aigrette'),
((SELECT id FROM bird WHERE name = 'GRAVELOT_A_COLLIER_INTERROMPU'), (SELECT id FROM language WHERE name = 'FR'),
'Gravelot à collier interrompu'),
((SELECT id FROM bird WHERE name = 'GRAVELOT_KILDIR'), (SELECT id FROM language WHERE name = 'FR'),
'Gravelot kildir'),
((SELECT id FROM bird WHERE name = 'GREBE_A_COU_NOIR'), (SELECT id FROM language WHERE name = 'FR'),
'Grèbe à cou noir'),
((SELECT id FROM bird WHERE name = 'GREBE_CASTAGNEUX'), (SELECT id FROM language WHERE name = 'FR'),
'Grèbe castagneux'),
((SELECT id FROM bird WHERE name = 'GREBE_ESCLAVON'), (SELECT id FROM language WHERE name = 'FR'),
'Grèbe esclavon'),
((SELECT id FROM bird WHERE name = 'GREBE_HUPPE'), (SELECT id FROM language WHERE name = 'FR'), 'Grèbe huppé'),
((SELECT id FROM bird WHERE name = 'GREBE_JOUGRIS'), (SELECT id FROM language WHERE name = 'FR'),
'Grèbe jougris'),
((SELECT id FROM bird WHERE name = 'GRIMPEREAU_DES_BOIS'), (SELECT id FROM language WHERE name = 'FR'),
'Grimpereau des bois'),
((SELECT id FROM bird WHERE name = 'GRIMPEREAU_DES_JARDINS'), (SELECT id FROM language WHERE name = 'FR'),
'Grimpereau des jardins'),
((SELECT id FROM bird WHERE name = 'GRIVE_DE_SIBERIE'), (SELECT id FROM language WHERE name = 'FR'),
'Grive de Sibérie'),
((SELECT id FROM bird WHERE name = 'GRIVE_DRAINE'), (SELECT id FROM language WHERE name = 'FR'), 'Grive draine'),
((SELECT id FROM bird WHERE name = 'GRIVE_LITORNE'), (SELECT id FROM language WHERE name = 'FR'),
'Grive litorne'),
((SELECT id FROM bird WHERE name = 'GRIVE_MAUVIS'), (SELECT id FROM language WHERE name = 'FR'), 'Grive mauvis'),
((SELECT id FROM bird WHERE name = 'GRIVE_MUSICIENNE'), (SELECT id FROM language WHERE name = 'FR'),
'Grive musicienne'),
((SELECT id FROM bird WHERE name = 'GROSBEC_CASSE_NOYAUX'), (SELECT id FROM language WHERE name = 'FR'),
'Grosbec casse-noyaux'),
((SELECT id FROM bird WHERE name = 'GRUE_CENDREE'), (SELECT id FROM language WHERE name = 'FR'), 'Grue cendrée'),
((SELECT id FROM bird WHERE name = 'GUEPIER_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Guêpier d''Europe'),
((SELECT id FROM bird WHERE name = 'GUEPIER_DE_PERSE'), (SELECT id FROM language WHERE name = 'FR'),
'Guêpier de Perse'),
((SELECT id FROM bird WHERE name = 'GUIFETTE_LEUCOPTERE'), (SELECT id FROM language WHERE name = 'FR'),
'Guifette leucoptère'),
((SELECT id FROM bird WHERE name = 'GUIFETTE_MOUSTAC'), (SELECT id FROM language WHERE name = 'FR'),
'Guifette moustac'),
((SELECT id FROM bird WHERE name = 'GUIFETTE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Guifette noire'),
((SELECT id FROM bird WHERE name = 'GUILLEMOT_A_LONG_BEC'), (SELECT id FROM language WHERE name = 'FR'),
'Guillemot à long bec'),
((SELECT id FROM bird WHERE name = 'GUILLEMOT_DE_TROIL'), (SELECT id FROM language WHERE name = 'FR'),
'Guillemot de Troïl'),
((SELECT id FROM bird WHERE name = 'GYPAETE_BARBU'), (SELECT id FROM language WHERE name = 'FR'),
'Gypaète barbu'),
((SELECT id FROM bird WHERE name = 'HARELDE_BOREALE'), (SELECT id FROM language WHERE name = 'FR'),
'Harelde boréale'),
((SELECT id FROM bird WHERE name = 'HARLE_BIEVRE'), (SELECT id FROM language WHERE name = 'FR'), 'Harle bièvre'),
((SELECT id FROM bird WHERE name = 'HARLE_HUPPE'), (SELECT id FROM language WHERE name = 'FR'), 'Harle huppé'),
((SELECT id FROM bird WHERE name = 'HARLE_PIETTE'), (SELECT id FROM language WHERE name = 'FR'), 'Harle piette'),
((SELECT id FROM bird WHERE name = 'HERON_CENDRE'), (SELECT id FROM language WHERE name = 'FR'), 'Héron cendré'),
((SELECT id FROM bird WHERE name = 'HERON_GARDE_BOEUFS'), (SELECT id FROM language WHERE name = 'FR'),
'Héron garde-boeufs'),
((SELECT id FROM bird WHERE name = 'HERON_POURPRE'), (SELECT id FROM language WHERE name = 'FR'),
'Héron pourpré'),
((SELECT id FROM bird WHERE name = 'HIBOU_DES_MARAIS'), (SELECT id FROM language WHERE name = 'FR'),
'Hibou des marais'),
((SELECT id FROM bird WHERE name = 'HIBOU_MOYEN_DUC'), (SELECT id FROM language WHERE name = 'FR'),
'Hibou moyen-duc'),
((SELECT id FROM bird WHERE name = 'HIRONDELLE_DE_FENETRE'), (SELECT id FROM language WHERE name = 'FR'),
'Hirondelle de fenêtre'),
((SELECT id FROM bird WHERE name = 'HIRONDELLE_DE_RIVAGE'), (SELECT id FROM language WHERE name = 'FR'),
'Hirondelle de rivage'),
((SELECT id FROM bird WHERE name = 'HIRONDELLE_DE_ROCHERS'), (SELECT id FROM language WHERE name = 'FR'),
'Hirondelle de rochers'),
((SELECT id FROM bird WHERE name = 'HIRONDELLE_ROUSSELINE'), (SELECT id FROM language WHERE name = 'FR'),
'Hirondelle rousseline'),
((SELECT id FROM bird WHERE name = 'HIRONDELLE_RUSTIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Hirondelle rustique'),
((SELECT id FROM bird WHERE name = 'HUITRIER_PIE'), (SELECT id FROM language WHERE name = 'FR'), 'Huîtrier pie'),
((SELECT id FROM bird WHERE name = 'HUPPE_FASCIEE'), (SELECT id FROM language WHERE name = 'FR'),
'Huppe fasciée'),
((SELECT id FROM bird WHERE name = 'HYPOLAIS_BOTTEE'), (SELECT id FROM language WHERE name = 'FR'),
'Hypolaïs bottée'),
((SELECT id FROM bird WHERE name = 'HYPOLAIS_ICTERINE'), (SELECT id FROM language WHERE name = 'FR'),
'Hypolaïs ictérine'),
((SELECT id FROM bird WHERE name = 'HYPOLAIS_POLYGLOTTE'), (SELECT id FROM language WHERE name = 'FR'),
'Hypolaïs polyglotte'),
((SELECT id FROM bird WHERE name = 'IBIS_CHAUVE'), (SELECT id FROM language WHERE name = 'FR'), 'Ibis chauve'),
((SELECT id FROM bird WHERE name = 'IBIS_FALCINELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Ibis falcinelle'),
((SELECT id FROM bird WHERE name = 'IBIS_SACRE'), (SELECT id FROM language WHERE name = 'FR'), 'Ibis sacré'),
((SELECT id FROM bird WHERE name = 'IRANIE_A_GORGE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Iranie à gorge blanche'),
((SELECT id FROM bird WHERE name = 'JASEUR_BOREAL'), (SELECT id FROM language WHERE name = 'FR'),
'Jaseur boréal'),
((SELECT id FROM bird WHERE name = 'LABBE_A_LONGUE_QUEUE'), (SELECT id FROM language WHERE name = 'FR'),
'Labbe à longue queue'),
((SELECT id FROM bird WHERE name = 'LABBE_PARASITE'), (SELECT id FROM language WHERE name = 'FR'),
'Labbe parasite'),
((SELECT id FROM bird WHERE name = 'LABBE_POMARIN'), (SELECT id FROM language WHERE name = 'FR'),
'Labbe pomarin'),
((SELECT id FROM bird WHERE name = 'LAGOPEDE_ALPIN'), (SELECT id FROM language WHERE name = 'FR'),
'Lagopède alpin'),
((SELECT id FROM bird WHERE name = 'LINOTTE_A_BEC_JAUNE'), (SELECT id FROM language WHERE name = 'FR'),
'Linotte à bec jaune'),
((SELECT id FROM bird WHERE name = 'LINOTTE_MELODIEUSE'), (SELECT id FROM language WHERE name = 'FR'),
'Linotte mélodieuse'),
((SELECT id FROM bird WHERE name = 'LOCUSTELLE_FLUVIATILE'), (SELECT id FROM language WHERE name = 'FR'),
'Locustelle fluviatile'),
((SELECT id FROM bird WHERE name = 'LOCUSTELLE_LUSCINIOIDE'), (SELECT id FROM language WHERE name = 'FR'),
'Locustelle luscinioïde'),
((SELECT id FROM bird WHERE name = 'LOCUSTELLE_TACHETEE'), (SELECT id FROM language WHERE name = 'FR'),
'Locustelle tachetée'),
((SELECT id FROM bird WHERE name = 'LORIOT_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Loriot d''Europe'),
((SELECT id FROM bird WHERE name = 'LUSCINIOLE_A_MOUSTACHES'), (SELECT id FROM language WHERE name = 'FR'),
'Lusciniole à moustaches'),
((SELECT id FROM bird WHERE name = 'MACREUSE_BRUNE'), (SELECT id FROM language WHERE name = 'FR'),
'Macreuse brune'),
((SELECT id FROM bird WHERE name = 'MACREUSE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Macreuse noire'),
((SELECT id FROM bird WHERE name = 'MAROUETTE_DE_BAILLON'), (SELECT id FROM language WHERE name = 'FR'),
'Marouette de Baillon'),
((SELECT id FROM bird WHERE name = 'MAROUETTE_PONCTUEE'), (SELECT id FROM language WHERE name = 'FR'),
'Marouette ponctuée'),
((SELECT id FROM bird WHERE name = 'MAROUETTE_POUSSIN'), (SELECT id FROM language WHERE name = 'FR'),
'Marouette poussin'),
((SELECT id FROM bird WHERE name = 'MARTIN_PECHEUR_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Martin-pêcheur d''Europe'),
((SELECT id FROM bird WHERE name = 'MARTINET_A_VENTRE_BLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Martinet à ventre blanc'),
((SELECT id FROM bird WHERE name = 'MARTINET_NOIR'), (SELECT id FROM language WHERE name = 'FR'),
'Martinet noir'),
((SELECT id FROM bird WHERE name = 'MARTINET_PALE'), (SELECT id FROM language WHERE name = 'FR'),
'Martinet pâle'),
((SELECT id FROM bird WHERE name = 'MERLE_A_PLASTRON'), (SELECT id FROM language WHERE name = 'FR'),
'Merle à plastron'),
((SELECT id FROM bird WHERE name = 'MERLE_NOIR'), (SELECT id FROM language WHERE name = 'FR'), 'Merle noir'),
((SELECT id FROM bird WHERE name = 'MESANGE_A_LONGUE_QUEUE'), (SELECT id FROM language WHERE name = 'FR'),
'Orite à longue queue'),
((SELECT id FROM bird WHERE name = 'MESANGE_BLEUE'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange bleue'),
((SELECT id FROM bird WHERE name = 'MESANGE_BOREALE'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange boréale'),
((SELECT id FROM bird WHERE name = 'MESANGE_CHARBONNIERE'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange charbonnière'),
((SELECT id FROM bird WHERE name = 'MESANGE_HUPPEE'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange huppée'),
((SELECT id FROM bird WHERE name = 'MESANGE_NOIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange noire'),
((SELECT id FROM bird WHERE name = 'MESANGE_NONNETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange nonnette'),
((SELECT id FROM bird WHERE name = 'MILAN_NOIR'), (SELECT id FROM language WHERE name = 'FR'), 'Milan noir'),
((SELECT id FROM bird WHERE name = 'MILAN_ROYAL'), (SELECT id FROM language WHERE name = 'FR'), 'Milan royal'),
((SELECT id FROM bird WHERE name = 'MOINEAU_CISALPIN'), (SELECT id FROM language WHERE name = 'FR'),
'Moineau cisalpin'),
((SELECT id FROM bird WHERE name = 'MOINEAU_DOMESTIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Moineau domestique'),
((SELECT id FROM bird WHERE name = 'MOINEAU_ESPAGNOL'), (SELECT id FROM language WHERE name = 'FR'),
'Moineau espagnol'),
((SELECT id FROM bird WHERE name = 'MOINEAU_FRIQUET'), (SELECT id FROM language WHERE name = 'FR'),
'Moineau friquet'),
((SELECT id FROM bird WHERE name = 'MOINEAU_SOULCIE'), (SELECT id FROM language WHERE name = 'FR'),
'Moineau soulcie'),
((SELECT id FROM bird WHERE name = 'MONTICOLE_BLEU'), (SELECT id FROM language WHERE name = 'FR'),
'Monticole bleu'),
((SELECT id FROM bird WHERE name = 'MONTICOLE_DE_ROCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Monticole de roche'),
((SELECT id FROM bird WHERE name = 'MOUETTE_ATRICILLE'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette atricille'),
((SELECT id FROM bird WHERE name = 'MOUETTE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette blanche'),
((SELECT id FROM bird WHERE name = 'MOUETTE_DE_FRANKLIN'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette de Franklin'),
((SELECT id FROM bird WHERE name = 'MOUETTE_DE_SABINE'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette de Sabine'),
((SELECT id FROM bird WHERE name = 'MOUETTE_MELANOCEPHALE'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette mélanocéphale'),
((SELECT id FROM bird WHERE name = 'MOUETTE_PYGMEE'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette pygmée'),
((SELECT id FROM bird WHERE name = 'MOUETTE_RIEUSE'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette rieuse'),
((SELECT id FROM bird WHERE name = 'MOUETTE_TRIDACTYLE'), (SELECT id FROM language WHERE name = 'FR'),
'Mouette tridactyle'),
((SELECT id FROM bird WHERE name = 'NETTE_ROUSSE'), (SELECT id FROM language WHERE name = 'FR'), 'Nette rousse'),
((SELECT id FROM bird WHERE name = 'NIVEROLLE_ALPINE'), (SELECT id FROM language WHERE name = 'FR'),
'Niverolle alpine'),
((SELECT id FROM bird WHERE name = 'OCEANITE_CULBLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Océanite culblanc'),
((SELECT id FROM bird WHERE name = 'OCEANITE_DE_CASTRO'), (SELECT id FROM language WHERE name = 'FR'),
'Océanite de Castro'),
((SELECT id FROM bird WHERE name = 'OCEANITE_TEMPETE'), (SELECT id FROM language WHERE name = 'FR'),
'Océanite tempête'),
((SELECT id FROM bird WHERE name = 'OEDICNEME_CRIARD'), (SELECT id FROM language WHERE name = 'FR'),
'Oedicnème criard'),
((SELECT id FROM bird WHERE name = 'OIE_A_BEC_COURT'), (SELECT id FROM language WHERE name = 'FR'),
'Oie à bec court'),
((SELECT id FROM bird WHERE name = 'OIE_CENDREE'), (SELECT id FROM language WHERE name = 'FR'), 'Oie cendrée'),
((SELECT id FROM bird WHERE name = 'OIE_DES_MOISSONS'), (SELECT id FROM language WHERE name = 'FR'),
'Oie des moissons'),
((SELECT id FROM bird WHERE name = 'OIE_DES_NEIGES'), (SELECT id FROM language WHERE name = 'FR'),
'Oie des neiges'),
((SELECT id FROM bird WHERE name = 'OIE_NAINE'), (SELECT id FROM language WHERE name = 'FR'), 'Oie naine'),
((SELECT id FROM bird WHERE name = 'OIE_RIEUSE'), (SELECT id FROM language WHERE name = 'FR'), 'Oie rieuse'),
((SELECT id FROM bird WHERE name = 'OUETTE_D_EGYPTE'), (SELECT id FROM language WHERE name = 'FR'),
'Ouette d''Égypte'),
((SELECT id FROM bird WHERE name = 'OUTARDE_BARBUE'), (SELECT id FROM language WHERE name = 'FR'),
'Outarde barbue'),
((SELECT id FROM bird WHERE name = 'OUTARDE_CANEPETIERE'), (SELECT id FROM language WHERE name = 'FR'),
'Outarde canepetière'),
((SELECT id FROM bird WHERE name = 'OUTARDE_DE_MACQUEEN'), (SELECT id FROM language WHERE name = 'FR'),
'Outarde de Macqueen'),
((SELECT id FROM bird WHERE name = 'OUTARDE_HOUBARA'), (SELECT id FROM language WHERE name = 'FR'),
'Outarde houbara'),
((SELECT id FROM bird WHERE name = 'PANURE_A_MOUSTACHES'), (SELECT id FROM language WHERE name = 'FR'),
'Panure à moustaches'),
((SELECT id FROM bird WHERE name = 'PELICAN_BLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Pélican blanc'),
((SELECT id FROM bird WHERE name = 'PELICAN_FRISE'), (SELECT id FROM language WHERE name = 'FR'),
'Pélican frisé'),
((SELECT id FROM bird WHERE name = 'PELICAN_GRIS'), (SELECT id FROM language WHERE name = 'FR'), 'Pélican gris'),
((SELECT id FROM bird WHERE name = 'PERDRIX_BARTAVELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Perdrix bartavelle'),
((SELECT id FROM bird WHERE name = 'PERDRIX_GRISE'), (SELECT id FROM language WHERE name = 'FR'),
'Perdrix grise'),
((SELECT id FROM bird WHERE name = 'PERDRIX_ROUGE'), (SELECT id FROM language WHERE name = 'FR'),
'Perdrix rouge'),
((SELECT id FROM bird WHERE name = 'PETIT_GRAVELOT'), (SELECT id FROM language WHERE name = 'FR'),
'Petit Gravelot'),
((SELECT id FROM bird WHERE name = 'PETIT_DUC_SCOPS'), (SELECT id FROM language WHERE name = 'FR'),
'Petit-duc scops'),
((SELECT id FROM bird WHERE name = 'PHALAROPE_A_BEC_ETROIT'), (SELECT id FROM language WHERE name = 'FR'),
'Phalarope à bec étroit'),
((SELECT id FROM bird WHERE name = 'PHALAROPE_A_BEC_LARGE'), (SELECT id FROM language WHERE name = 'FR'),
'Phalarope à bec large'),
((SELECT id FROM bird WHERE name = 'PHRAGMITE_AQUATIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Phragmite aquatique'),
((SELECT id FROM bird WHERE name = 'PHRAGMITE_DES_JONCS'), (SELECT id FROM language WHERE name = 'FR'),
'Phragmite des joncs'),
((SELECT id FROM bird WHERE name = 'PIC_A_DOS_BLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Pic à dos blanc'),
((SELECT id FROM bird WHERE name = 'PIC_CENDRE'), (SELECT id FROM language WHERE name = 'FR'), 'Pic cendré'),
((SELECT id FROM bird WHERE name = 'PIC_EPEICHE'), (SELECT id FROM language WHERE name = 'FR'), 'Pic épeiche'),
((SELECT id FROM bird WHERE name = 'PIC_EPEICHETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Pic épeichette'),
((SELECT id FROM bird WHERE name = 'PIC_MAR'), (SELECT id FROM language WHERE name = 'FR'), 'Pic mar'),
((SELECT id FROM bird WHERE name = 'PIC_NOIR'), (SELECT id FROM language WHERE name = 'FR'), 'Pic noir'),
((SELECT id FROM bird WHERE name = 'PIC_TRIDACTYLE'), (SELECT id FROM language WHERE name = 'FR'),
'Pic tridactyle'),
((SELECT id FROM bird WHERE name = 'PIC_VERT'), (SELECT id FROM language WHERE name = 'FR'), 'Pic vert'),
((SELECT id FROM bird WHERE name = 'PIE_BAVARDE'), (SELECT id FROM language WHERE name = 'FR'), 'Pie bavarde'),
((SELECT id FROM bird WHERE name = 'PIE_GRIECHE_A_POITRINE_ROSE'), (SELECT id FROM language WHERE name = 'FR'),
'Pie-grièche à poitrine rose'),
((SELECT id FROM bird WHERE name = 'PIE_GRIECHE_A_TETE_ROUSSE'), (SELECT id FROM language WHERE name = 'FR'),
'Pie-grièche à tête rousse'),
((SELECT id FROM bird WHERE name = 'PIE_GRIECHE_ECORCHEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Pie-grièche écorcheur'),
((SELECT id FROM bird WHERE name = 'PIE_GRIECHE_GRISE'), (SELECT id FROM language WHERE name = 'FR'),
'Pie-grièche grise'),
((SELECT id FROM bird WHERE name = 'PIE_GRIECHE_ISABELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Pie-grièche isabelle'),
((SELECT id FROM bird WHERE name = 'PIGEON_BISET_DOMESTIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Pigeon biset'),
((SELECT id FROM bird WHERE name = 'PIGEON_COLOMBIN'), (SELECT id FROM language WHERE name = 'FR'),
'Pigeon colombin'),
((SELECT id FROM bird WHERE name = 'PIGEON_RAMIER'), (SELECT id FROM language WHERE name = 'FR'),
'Pigeon ramier'),
((SELECT id FROM bird WHERE name = 'PINSON_DES_ARBRES'), (SELECT id FROM language WHERE name = 'FR'),
'Pinson des arbres'),
((SELECT id FROM bird WHERE name = 'PINSON_DU_NORD'), (SELECT id FROM language WHERE name = 'FR'),
'Pinson du Nord'),
((SELECT id FROM bird WHERE name = 'PIPIT_A_DOS_OLIVE'), (SELECT id FROM language WHERE name = 'FR'),
'Pipit à dos olive'),
((SELECT id FROM bird WHERE name = 'PIPIT_A_GORGE_ROUSSE'), (SELECT id FROM language WHERE name = 'FR'),
'Pipit à gorge rousse'),
((SELECT id FROM bird WHERE name = 'PIPIT_DE_RICHARD'), (SELECT id FROM language WHERE name = 'FR'),
'Pipit de Richard'),
((SELECT id FROM bird WHERE name = 'PIPIT_DES_ARBRES'), (SELECT id FROM language WHERE name = 'FR'),
'Pipit des arbres'),
((SELECT id FROM bird WHERE name = 'PIPIT_FARLOUSE'), (SELECT id FROM language WHERE name = 'FR'),
'Pipit farlouse'),
((SELECT id FROM bird WHERE name = 'PIPIT_ROUSSELINE'), (SELECT id FROM language WHERE name = 'FR'),
'Pipit rousseline'),
((SELECT id FROM bird WHERE name = 'PIPIT_SPIONCELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Pipit spioncelle'),
((SELECT id FROM bird WHERE name = 'PLONGEON_A_BEC_BLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Plongeon à bec blanc'),
((SELECT id FROM bird WHERE name = 'PLONGEON_ARCTIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Plongeon arctique'),
((SELECT id FROM bird WHERE name = 'PLONGEON_CATMARIN'), (SELECT id FROM language WHERE name = 'FR'),
'Plongeon catmarin'),
((SELECT id FROM bird WHERE name = 'PLONGEON_DU_PACIFIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Plongeon du Pacifique'),
((SELECT id FROM bird WHERE name = 'PLONGEON_IMBRIN'), (SELECT id FROM language WHERE name = 'FR'),
'Plongeon imbrin'),
((SELECT id FROM bird WHERE name = 'PLUVIER_ARGENTE'), (SELECT id FROM language WHERE name = 'FR'),
'Pluvier argenté'),
((SELECT id FROM bird WHERE name = 'PLUVIER_DORE'), (SELECT id FROM language WHERE name = 'FR'), 'Pluvier doré'),
((SELECT id FROM bird WHERE name = 'PLUVIER_FAUVE'), (SELECT id FROM language WHERE name = 'FR'),
'Pluvier fauve'),
((SELECT id FROM bird WHERE name = 'PLUVIER_GUIGNARD'), (SELECT id FROM language WHERE name = 'FR'),
'Pluvier guignard'),
((SELECT id FROM bird WHERE name = 'POUILLOT_A_GRANDS_SOURCILS'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot à grands sourcils'),
((SELECT id FROM bird WHERE name = 'POUILLOT_BRUN'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot brun'),
((SELECT id FROM bird WHERE name = 'POUILLOT_DE_BONELLI'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot de Bonelli'),
((SELECT id FROM bird WHERE name = 'POUILLOT_DE_HUME'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot de Hume'),
((SELECT id FROM bird WHERE name = 'POUILLOT_DE_PALLAS'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot de Pallas'),
((SELECT id FROM bird WHERE name = 'POUILLOT_DE_SCHWARZ'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot de Schwarz'),
((SELECT id FROM bird WHERE name = 'POUILLOT_DE_SIBERIE'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot de Sibérie'),
((SELECT id FROM bird WHERE name = 'POUILLOT_FITIS'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot fitis'),
((SELECT id FROM bird WHERE name = 'POUILLOT_IBERIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot ibérique'),
((SELECT id FROM bird WHERE name = 'POUILLOT_SIFFLEUR'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot siffleur'),
((SELECT id FROM bird WHERE name = 'POUILLOT_VELOCE'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot véloce'),
((SELECT id FROM bird WHERE name = 'POUILLOT_VERDATRE'), (SELECT id FROM language WHERE name = 'FR'),
'Pouillot verdâtre'),
((SELECT id FROM bird WHERE name = 'PUFFIN_CENDRE'), (SELECT id FROM language WHERE name = 'FR'),
'Puffin boréal'),
((SELECT id FROM bird WHERE name = 'PUFFIN_DE_SCOPOLI'), (SELECT id FROM language WHERE name = 'FR'),
'Puffin de Scopoli'),
((SELECT id FROM bird WHERE name = 'PUFFIN_DES_ANGLAIS'), (SELECT id FROM language WHERE name = 'FR'),
'Puffin des Anglais'),
((SELECT id FROM bird WHERE name = 'PUFFIN_FULIGINEUX'), (SELECT id FROM language WHERE name = 'FR'),
'Puffin fuligineux'),
((SELECT id FROM bird WHERE name = 'PUFFIN_YELKOUAN'), (SELECT id FROM language WHERE name = 'FR'),
'Puffin yelkouan'),
((SELECT id FROM bird WHERE name = 'PYGARGUE_A_QUEUE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Pygargue à queue blanche'),
((SELECT id FROM bird WHERE name = 'RALE_D_EAU'), (SELECT id FROM language WHERE name = 'FR'), 'Râle d''eau'),
((SELECT id FROM bird WHERE name = 'RALE_DES_GENETS'), (SELECT id FROM language WHERE name = 'FR'),
'Râle des genêts'),
((SELECT id FROM bird WHERE name = 'REMIZ_PENDULINE'), (SELECT id FROM language WHERE name = 'FR'),
'Rémiz penduline'),
((SELECT id FROM bird WHERE name = 'ROITELET_A_TRIPLE_BANDEAU'), (SELECT id FROM language WHERE name = 'FR'),
'Roitelet triple-bandeau'),
((SELECT id FROM bird WHERE name = 'ROITELET_HUPPE'), (SELECT id FROM language WHERE name = 'FR'),
'Roitelet huppé'),
((SELECT id FROM bird WHERE name = 'ROLLIER_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Rollier d''Europe'),
((SELECT id FROM bird WHERE name = 'ROSELIN_CRAMOISI'), (SELECT id FROM language WHERE name = 'FR'),
'Roselin cramoisi'),
((SELECT id FROM bird WHERE name = 'ROSELIN_GITHAGINE'), (SELECT id FROM language WHERE name = 'FR'),
'Roselin githagine'),
((SELECT id FROM bird WHERE name = 'ROSSIGNOL_PHILOMELE'), (SELECT id FROM language WHERE name = 'FR'),
'Rossignol philomèle'),
((SELECT id FROM bird WHERE name = 'ROSSIGNOL_PROGNE'), (SELECT id FROM language WHERE name = 'FR'),
'Rossignol progné'),
((SELECT id FROM bird WHERE name = 'ROUGEGORGE_FAMILIER'), (SELECT id FROM language WHERE name = 'FR'),
'Rougegorge familier'),
((SELECT id FROM bird WHERE name = 'ROUGEQUEUE_A_FRONT_BLANC'), (SELECT id FROM language WHERE name = 'FR'),
'Rougequeue à front blanc'),
((SELECT id FROM bird WHERE name = 'ROUGEQUEUE_NOIR'), (SELECT id FROM language WHERE name = 'FR'),
'Rougequeue noir'),
((SELECT id FROM bird WHERE name = 'ROUSSEROLLE_DES_BUISSONS'), (SELECT id FROM language WHERE name = 'FR'),
'Rousserolle des buissons'),
((SELECT id FROM bird WHERE name = 'ROUSSEROLLE_EFFARVATTE'), (SELECT id FROM language WHERE name = 'FR'),
'Rousserolle effarvatte'),
((SELECT id FROM bird WHERE name = 'ROUSSEROLLE_ISABELLE'), (SELECT id FROM language WHERE name = 'FR'),
'Rousserolle isabelle'),
((SELECT id FROM bird WHERE name = 'ROUSSEROLLE_TURDOIDE'), (SELECT id FROM language WHERE name = 'FR'),
'Rousserolle turdoïde'),
((SELECT id FROM bird WHERE name = 'ROUSSEROLLE_VERDEROLLE'), (SELECT id FROM language WHERE name = 'FR'),
'Rousserolle verderolle'),
((SELECT id FROM bird WHERE name = 'SARCELLE_A_AILES_BLEUES'), (SELECT id FROM language WHERE name = 'FR'),
'Sarcelle à ailes bleues'),
((SELECT id FROM bird WHERE name = 'SARCELLE_D_ETE'), (SELECT id FROM language WHERE name = 'FR'),
'Sarcelle d''été'),
((SELECT id FROM bird WHERE name = 'SARCELLE_D_HIVER'), (SELECT id FROM language WHERE name = 'FR'),
'Sarcelle d''hiver'),
((SELECT id FROM bird WHERE name = 'SARCELLE_MARBREE'), (SELECT id FROM language WHERE name = 'FR'),
'Sarcelle marbrée'),
((SELECT id FROM bird WHERE name = 'SERIN_CINI'), (SELECT id FROM language WHERE name = 'FR'), 'Serin cini'),
((SELECT id FROM bird WHERE name = 'SITTELLE_TORCHEPOT'), (SELECT id FROM language WHERE name = 'FR'),
'Sittelle torchepot'),
((SELECT id FROM bird WHERE name = 'SIZERIN_FLAMME'), (SELECT id FROM language WHERE name = 'FR'),
'Sizerin flammé'),
((SELECT id FROM bird WHERE name = 'SPATULE_BLANCHE'), (SELECT id FROM language WHERE name = 'FR'),
'Spatule blanche'),
((SELECT id FROM bird WHERE name = 'STERNE_ARCTIQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Sterne arctique'),
((SELECT id FROM bird WHERE name = 'STERNE_CASPIENNE'), (SELECT id FROM language WHERE name = 'FR'),
'Sterne caspienne'),
((SELECT id FROM bird WHERE name = 'STERNE_CAUGEK'), (SELECT id FROM language WHERE name = 'FR'),
'Sterne caugek'),
((SELECT id FROM bird WHERE name = 'STERNE_DE_DOUGALL'), (SELECT id FROM language WHERE name = 'FR'),
'Sterne de Dougall'),
((SELECT id FROM bird WHERE name = 'STERNE_HANSEL'), (SELECT id FROM language WHERE name = 'FR'),
'Sterne hansel'),
((SELECT id FROM bird WHERE name = 'STERNE_NAINE'), (SELECT id FROM language WHERE name = 'FR'), 'Sterne naine'),
((SELECT id FROM bird WHERE name = 'STERNE_PIERREGARIN'), (SELECT id FROM language WHERE name = 'FR'),
'Sterne pierregarin'),
((SELECT id FROM bird WHERE name = 'STERNE_VOYAGEUSE'), (SELECT id FROM language WHERE name = 'FR'),
'Sterne voyageuse'),
((SELECT id FROM bird WHERE name = 'SYRRHAPTE_PARADOXAL'), (SELECT id FROM language WHERE name = 'FR'),
'Syrrhapte paradoxal'),
((SELECT id FROM bird WHERE name = 'TADORNE_CASARCA'), (SELECT id FROM language WHERE name = 'FR'),
'Tadorne casarca'),
((SELECT id FROM bird WHERE name = 'TADORNE_DE_BELON'), (SELECT id FROM language WHERE name = 'FR'),
'Tadorne de Belon'),
((SELECT id FROM bird WHERE name = 'TALEVE_SULTANE'), (SELECT id FROM language WHERE name = 'FR'),
'Talève sultane'),
((SELECT id FROM bird WHERE name = 'TALEVE_VIOLACEE'), (SELECT id FROM language WHERE name = 'FR'),
'Talève violacée'),
((SELECT id FROM bird WHERE name = 'TARIER_DES_PRES'), (SELECT id FROM language WHERE name = 'FR'),
'Tarier des prés'),
((SELECT id FROM bird WHERE name = 'TARIER_PATRE'), (SELECT id FROM language WHERE name = 'FR'), 'Tarier pâtre'),
((SELECT id FROM bird WHERE name = 'TARIN_DES_AULNES'), (SELECT id FROM language WHERE name = 'FR'),
'Tarin des aulnes'),
((SELECT id FROM bird WHERE name = 'TETRAS_LYRE'), (SELECT id FROM language WHERE name = 'FR'), 'Tétras lyre'),
((SELECT id FROM bird WHERE name = 'TICHODROME_ECHELETTE'), (SELECT id FROM language WHERE name = 'FR'),
'Tichodrome échelette'),
((SELECT id FROM bird WHERE name = 'TORCOL_FOURMILIER'), (SELECT id FROM language WHERE name = 'FR'),
'Torcol fourmilier'),
((SELECT id FROM bird WHERE name = 'TOURNEPIERRE_A_COLLIER'), (SELECT id FROM language WHERE name = 'FR'),
'Tournepierre à collier'),
((SELECT id FROM bird WHERE name = 'TOURTERELLE_DES_BOIS'), (SELECT id FROM language WHERE name = 'FR'),
'Tourterelle des bois'),
((SELECT id FROM bird WHERE name = 'TOURTERELLE_TURQUE'), (SELECT id FROM language WHERE name = 'FR'),
'Tourterelle turque'),
((SELECT id FROM bird WHERE name = 'TRAQUET_DU_DESERT'), (SELECT id FROM language WHERE name = 'FR'),
'Traquet du désert'),
((SELECT id FROM bird WHERE name = 'TRAQUET_MOTTEUX'), (SELECT id FROM language WHERE name = 'FR'),
'Traquet motteux'),
((SELECT id FROM bird WHERE name = 'TRAQUET_OREILLARD'), (SELECT id FROM language WHERE name = 'FR'),
'Traquet oreillard'),
((SELECT id FROM bird WHERE name = 'TROGLODYTE_MIGNON'), (SELECT id FROM language WHERE name = 'FR'),
'Troglodyte mignon'),
((SELECT id FROM bird WHERE name = 'VANNEAU_HUPPE'), (SELECT id FROM language WHERE name = 'FR'),
'Vanneau huppé'),
((SELECT id FROM bird WHERE name = 'VANNEAU_SOCIABLE'), (SELECT id FROM language WHERE name = 'FR'),
'Vanneau sociable'),
((SELECT id FROM bird WHERE name = 'VAUTOUR_FAUVE'), (SELECT id FROM language WHERE name = 'FR'),
'Vautour fauve'),
((SELECT id FROM bird WHERE name = 'VAUTOUR_MOINE'), (SELECT id FROM language WHERE name = 'FR'),
'Vautour moine'),
((SELECT id FROM bird WHERE name = 'VAUTOUR_PERCNOPTERE'), (SELECT id FROM language WHERE name = 'FR'),
'Percnoptère d''Égypte'),
((SELECT id FROM bird WHERE name = 'VENTURON_MONTAGNARD'), (SELECT id FROM language WHERE name = 'FR'),
'Venturon montagnard'),
((SELECT id FROM bird WHERE name = 'VERDIER_D_EUROPE'), (SELECT id FROM language WHERE name = 'FR'),
'Verdier d''Europe'),
((SELECT id FROM bird WHERE name = 'MESANGE_DES_SAULES'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange des saules'),
((SELECT id FROM bird WHERE name = 'MESANGE_ALPESTRE'), (SELECT id FROM language WHERE name = 'FR'),
'Mésange alpestre');
INSERT INTO picture_type_translation(picture_type_id, language_id, translation)
VALUES ((SELECT id FROM picture_type WHERE name = 'ADULT'), (SELECT id FROM language WHERE name = 'FR'), 'Adulte'),
((SELECT id FROM picture_type WHERE name = 'ADULT_FEMALE'), (SELECT id FROM language WHERE name = 'FR'),
'Adulte femelle'),
((SELECT id FROM picture_type WHERE name = 'ADULT_INTERNUPTIAL'), (SELECT id FROM language WHERE name = 'FR'),
'Adulte (plumage internuptial)'),
((SELECT id FROM picture_type WHERE name = 'ADULT_INTERNUPTIAL_FEMALE'),
(SELECT id FROM language WHERE name = 'FR'), 'Adulte femelle (plumage internuptial)'),
((SELECT id FROM picture_type WHERE name = 'ADULT_INTERNUPTIAL_MALE'),
(SELECT id FROM language WHERE name = 'FR'), 'Adulte mâle (plumage internuptial)'),
((SELECT id FROM picture_type WHERE name = 'ADULT_MALE'), (SELECT id FROM language WHERE name = 'FR'),
'Adulte mâle'),
((SELECT id FROM picture_type WHERE name = 'ADULT_NUPTIAL'), (SELECT id FROM language WHERE name = 'FR'),
'Adulte (plumage nuptial)'),
((SELECT id FROM picture_type WHERE name = 'ADULT_NUPTIAL_FEMALE'), (SELECT id FROM language WHERE name = 'FR'),
'Adulte femelle (plumage nuptial)'),
((SELECT id FROM picture_type WHERE name = 'ADULT_NUPTIAL_MALE'), (SELECT id FROM language WHERE name = 'FR'),
'Adulte mâle (plumage nuptial)'),
((SELECT id FROM picture_type WHERE name = 'DARK_MORPH'), (SELECT id FROM language WHERE name = 'FR'),
'Forme sombre'),
((SELECT id FROM picture_type WHERE name = 'JUVENILE'), (SELECT id FROM language WHERE name = 'FR'), 'Juvénile'),
((SELECT id FROM picture_type WHERE name = 'JUVENILE_FEMALE'), (SELECT id FROM language WHERE name = 'FR'),
'Juvénile femelle'),
((SELECT id FROM picture_type WHERE name = 'JUVENILE_MALE'), (SELECT id FROM language WHERE name = 'FR'),
'Juvénile mâle'),
((SELECT id FROM picture_type WHERE name = 'LIGHT_MORPH'), (SELECT id FROM language WHERE name = 'FR'),
'Forme claire'),
((SELECT id FROM picture_type WHERE name = 'SUB_SPECIES'), (SELECT id FROM language WHERE name = 'FR'),
'Sous-espèce'),
((SELECT id FROM picture_type WHERE name = 'UNKNOWN'), (SELECT id FROM language WHERE name = 'FR'), 'Inconnu');
INSERT INTO sound_type_translation(sound_type_id, language_id, translation)
VALUES ((SELECT id FROM sound_type WHERE name = 'ALARM'), (SELECT id FROM language WHERE name = 'FR'), 'Alarme'),
((SELECT id FROM sound_type WHERE name = 'CALL'), (SELECT id FROM language WHERE name = 'FR'), 'Cri'),
((SELECT id FROM sound_type WHERE name = 'FLY_CALL'), (SELECT id FROM language WHERE name = 'FR'), 'Cri de vol'),
((SELECT id FROM sound_type WHERE name = 'JUVENILE_CALL'), (SELECT id FROM language WHERE name = 'FR'),
'Cri de juvénile'),
((SELECT id FROM sound_type WHERE name = 'SONG'), (SELECT id FROM language WHERE name = 'FR'), 'Chant'),
((SELECT id FROM sound_type WHERE name = 'UNKNOWN'), (SELECT id FROM language WHERE name = 'FR'), 'Inconnu');
INSERT INTO question_type_translation(question_type_id, language_id, translation)
VALUES ((SELECT id FROM question_type WHERE name = 'PICTURE_EXACT'), (SELECT id FROM language WHERE name = 'FR'),
'Image'),
((SELECT id FROM question_type WHERE name = 'PICTURE_MULTICHOICE'), (SELECT id FROM language WHERE name = 'FR'),
'Image (choix multiples)'),
((SELECT id FROM question_type WHERE name = 'SOUND_EXACT'), (SELECT id FROM language WHERE name = 'FR'), 'Son'),
((SELECT id FROM question_type WHERE name = 'SOUND_MULTICHOICE'), (SELECT id FROM language WHERE name = 'FR'),
'Son (choix multiples)'),
((SELECT id FROM question_type WHERE name = 'SOUND_MULTICHOICE_PICTURE'),
(SELECT id FROM language WHERE name = 'FR'), 'Son (choix multiple d''images)');
INSERT INTO migration_type_translation(migration_type_id, language_id, translation)
VALUES ((SELECT id FROM migration_type WHERE name = 'MIGRATION_COURTE_PARTIELLE'),
(SELECT id FROM language WHERE name = 'FR'), 'Migration courte (partielle)'),
((SELECT id FROM migration_type WHERE name = 'MIGRATION_LONGUE_PARTIELLE'),
(SELECT id FROM language WHERE name = 'FR'), 'Migration longue (partielle)'),
((SELECT id FROM migration_type WHERE name = 'MIGRATION_COURTE'), (SELECT id FROM language WHERE name = 'FR'),
'Migration courte'),
((SELECT id FROM migration_type WHERE name = 'MIGRATION_LONGUE'), (SELECT id FROM language WHERE name = 'FR'),
'Migration longue'),
((SELECT id FROM migration_type WHERE name = 'SEDENTAIRE'), (SELECT id FROM language WHERE name = 'FR'),
'Sédentaire'),
((SELECT id FROM migration_type WHERE name = 'UNKNOWN'), (SELECT id FROM language WHERE name = 'FR'), 'Inconnu');

View File

@@ -0,0 +1,177 @@
DROP TABLE IF EXISTS language CASCADE;
CREATE TABLE language
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS family CASCADE;
CREATE TABLE family
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS family_translation CASCADE;
CREATE TABLE family_translation
(
family_id smallint NOT NULL REFERENCES family (id) ON DELETE CASCADE,
language_id smallint NOT NULL REFERENCES language (id) ON DELETE CASCADE,
translation varchar NOT NULL,
PRIMARY KEY (family_id, language_id)
);
DROP TABLE IF EXISTS migration_type CASCADE;
CREATE TABLE migration_type
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS migration_type_translation CASCADE;
CREATE TABLE migration_type_translation
(
migration_type_id smallint NOT NULL REFERENCES migration_type (id) ON DELETE CASCADE,
language_id smallint NOT NULL REFERENCES language (id) ON DELETE CASCADE,
translation varchar NOT NULL,
PRIMARY KEY (migration_type_id, language_id)
);
DROP TABLE IF EXISTS bird CASCADE;
CREATE TABLE bird
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
family_id smallint NOT NULL REFERENCES family (id) ON DELETE RESTRICT,
migration_type_id smallint NOT NULL REFERENCES migration_type (id) ON DELETE RESTRICT,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS bird_translation CASCADE;
CREATE TABLE bird_translation
(
bird_id smallint NOT NULL REFERENCES bird (id) ON DELETE CASCADE,
language_id smallint NOT NULL REFERENCES language (id) ON DELETE CASCADE,
translation varchar NOT NULL,
PRIMARY KEY (bird_id, language_id)
);
DROP TABLE IF EXISTS fetcher CASCADE;
CREATE TABLE fetcher
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS profile CASCADE;
CREATE TABLE profile
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS picture_type CASCADE;
CREATE TABLE picture_type
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS picture_type_translation CASCADE;
CREATE TABLE picture_type_translation
(
picture_type_id smallint NOT NULL REFERENCES picture_type (id) ON DELETE CASCADE,
language_id smallint NOT NULL REFERENCES language (id) ON DELETE CASCADE,
translation varchar NOT NULL,
PRIMARY KEY (picture_type_id, language_id)
);
DROP TABLE IF EXISTS picture CASCADE;
CREATE TABLE picture
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
source varchar NOT NULL,
file_name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS sound_type CASCADE;
CREATE TABLE sound_type
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS sound_type_translation CASCADE;
CREATE TABLE sound_type_translation
(
sound_type_id smallint NOT NULL REFERENCES sound_type (id) ON DELETE CASCADE,
language_id smallint NOT NULL REFERENCES language (id) ON DELETE CASCADE,
translation varchar NOT NULL,
PRIMARY KEY (sound_type_id, language_id)
);
DROP TABLE IF EXISTS sound CASCADE;
CREATE TABLE sound
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
source varchar NOT NULL,
file_name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS question_type CASCADE;
CREATE TABLE question_type
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
name varchar NOT NULL UNIQUE
);
DROP TABLE IF EXISTS question_type_translation CASCADE;
CREATE TABLE question_type_translation
(
question_type_id smallint NOT NULL REFERENCES question_type (id) ON DELETE CASCADE,
language_id smallint NOT NULL REFERENCES language (id) ON DELETE CASCADE,
translation varchar NOT NULL,
PRIMARY KEY (question_type_id, language_id)
);
DROP TABLE IF EXISTS bird_parameters CASCADE;
CREATE TABLE bird_parameters
(
id smallint GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
profile_id smallint NOT NULL REFERENCES profile (id) ON DELETE CASCADE,
bird_id smallint NOT NULL REFERENCES bird (id) ON DELETE CASCADE,
enabled boolean NOT NULL DEFAULT true,
UNIQUE (profile_id, bird_id)
);
DROP TABLE IF EXISTS bird_parameters_picture_type CASCADE;
CREATE TABLE bird_parameters_picture_type
(
bird_parameters_id smallint NOT NULL REFERENCES bird_parameters (id) ON DELETE CASCADE,
picture_type_id smallint NOT NULL REFERENCES picture_type (id) ON DELETE CASCADE,
PRIMARY KEY (bird_parameters_id, picture_type_id)
);
DROP TABLE IF EXISTS bird_parameters_sound_type CASCADE;
CREATE TABLE bird_parameters_sound_type
(
bird_parameters_id smallint NOT NULL REFERENCES bird_parameters (id) ON DELETE CASCADE,
sound_type_id smallint NOT NULL REFERENCES sound_type (id) ON DELETE CASCADE,
PRIMARY KEY (bird_parameters_id, sound_type_id)
);
DROP TABLE IF EXISTS bird_parameters_fetcher CASCADE;
CREATE TABLE bird_parameters_fetcher
(
bird_parameters_id smallint NOT NULL REFERENCES bird_parameters (id) ON DELETE CASCADE,
fetcher_id smallint NOT NULL REFERENCES fetcher (id) ON DELETE CASCADE,
PRIMARY KEY (bird_parameters_id, fetcher_id)
);
DROP TABLE IF EXISTS parameters CASCADE;
CREATE TABLE parameters
(
profile_id smallint NOT NULL REFERENCES profile (id) ON DELETE CASCADE,
max_guesses smallint NOT NULL DEFAULT 1,
questions_count smallint NOT NULL DEFAULT 20,
suggestions_count smallint NOT NULL DEFAULT 4
);