Implements database, adds profiles
This commit is contained in:
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
@@ -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(" ");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
14
database/src/main/java/module-info.java
Normal file
14
database/src/main/java/module-info.java
Normal 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;
|
||||
}
|
||||
957
database/src/main/resources/ch/gtache/fro/database/init-data.sql
Normal file
957
database/src/main/resources/ch/gtache/fro/database/init-data.sql
Normal 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');
|
||||
13421
database/src/main/resources/ch/gtache/fro/database/init-fro1.sql
Normal file
13421
database/src/main/resources/ch/gtache/fro/database/init-fro1.sql
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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');
|
||||
177
database/src/main/resources/ch/gtache/fro/database/init.sql
Normal file
177
database/src/main/resources/ch/gtache/fro/database/init.sql
Normal 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
|
||||
);
|
||||
Reference in New Issue
Block a user