Как я могу скопировать запись, изменив только идентификатор?

Laravel поставляется с 2 внешними менеджерами пакетов: npm и пряжа

npm

npm i mdbootstrap

пряжа

yarn add mdbootstrap

[ 1117] После этого ваш пакет находится в каталоге node_modules .

Вы можете импортировать файлы sass и позволить объединять файлы js из пакетов в vendor.js .

Вы можете настроить то, что переносится куда, используя webpack.mix.js

Запуск npm run dev запустит перенос.


Если вы хотите установить mdbootstrap pro, вы должны выполнить следующие шаги

  1. получить лицензию и отправить по электронной почте contact@mdbootstrap.com, запрашивающий доступ к их git-репо (поскольку они не автоматизированы this)
  2. сгенерировать токен доступа на gitlab
  3. run

    npm install git+https://oauth2:[TOKEN]@git.mdbootstrap.com/mdb/[REPO].git --save
    

    Где [TOKEN] ваш токен из шагов 2 и [REPO] - это тот, который вам нужен из вариантов jquery, angular, vue или Reaction. Вы можете найти точные URL-адреса, посетив git.mdbootstrap.com и выбрав правильный проект. В верхнем правом углу найдите кнопку клон и скопируйте ссылку https .

6
задан nearly_lunchtime 30 July 2009 в 14:00
поделиться

5 ответов

Вы могли сделать это:

create table mytable_copy as select * from mytable;
update mytable_copy set id=new_id;
insert into mytable select * from mytable_copy;
drop table mytable_copy;
10
ответ дан 8 December 2019 в 16:12
поделиться

Ваш пример должен почти работать. Просто добавьте имена столбцов новой таблицы к нему.


INSERT INTO MYTABLE
(id, col1, col2)
SELECT new_id,col1, col2
FROM TABLE2
WHERE ...;
1
ответ дан 8 December 2019 в 16:12
поделиться

Я никогда не работал с db2, но в mssql вы можете решить эту проблему с помощью следующей процедуры. это решение работает только в том случае, если вам все равно, какой новый идентификатор получат элементы.

1.) создать новую таблицу с такой же схемой, но в которой столбец идентификатора увеличивается автоматически. (mssql "спецификация идентичности = 1, приращение идентичности = 1)

2.) чем простого

insert into newTable(col1, col2, col3)
select (col1, col2, col3) from oldatable

должно быть достаточно, убедитесь, что вы не включаете свой столбец идентификатора в приведенный выше оператор

-1
ответ дан 8 December 2019 в 16:12
поделиться

Хорошо, попробуйте следующее:

declare @othercols nvarchar(max);
declare @qry nvarchar(max);

select @othercols = (
select ', ' + quotename(name)
from sys.columns
where object_id = object_id('tableA')
and name <> 'Field3'
and is_identity = 0
for xml path(''));

select @qry = 'insert mynewtable (changingcol' + @othercols + ') select newval' + @othercols;

exec sp_executesql @qry;

Перед тем, как запустить строку «sp_executesql», выполните «select @qry», чтобы узнать, какую команду вы собираетесь запустить.

И, конечно, вы можете вставить это в хранимую процедуру и передать переменную вместо бита «Поле3».

Роб

2
ответ дан 8 December 2019 в 16:12
поделиться

Я не думаю, что это можно сделать полностью в SQL без необходимости создавать временную таблицу. Делать это в памяти должно быть намного быстрее. Остерегайтесь, если вы идете по маршруту временной таблицы, вы должны выбирать уникальное имя для своей таблицы для каждого вызова функции, чтобы избежать состояния гонки, когда ваш код запускается дважды одновременно и искажает две строки данных в одну временную таблицу.

Я не знаю, какой язык вы используете, но должно быть возможно получить список полей в вашей программе. Я бы сделал это так:

array_of_field_names = conn->get_field__list;
array_of_row_values = conn->execute ("SELECT... ");
array_of_row_values ["ID"] = new_id_value
insert_query_string = "construct insert query string from list of field names and values";
conn->execute (insert_query_string);

Затем вы можете инкапсулировать это как функцию и просто вызвать ее с указанием таблицы, старого идентификатора и нового идентификатора, и это сработает как волшебство.

В коде Perl подойдет следующий фрагмент:

$table_name = "MYTABLE";
$field_name = "ID";
$existing_field_value = "100";
$new_field_value = "101";

my $q = $dbh->prepare ("SELECT * FROM $table_name WHERE $field_name=?");
$q->execute ($existing_field_value);
my $rowdata = $q->fetchrow_hashref; # includes field names
$rowdata->{$field_name} = $new_field_value;

my $insq = $dbh->prepare ("INSERT INTO $table_name (" . join (", ", keys %$rowdata) . 
    ") VALUES (" . join (", ", map { "?" } keys %$rowdata) . ");";
$insq->execute (values %$rowdata);

Надеюсь, это поможет.

3
ответ дан 8 December 2019 в 16:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: